--- /dev/null
+<?xml version = "1.0" encoding = "UTF-8" ?>
+<uml version="6">
+ <argo version="6">
+ <documentation>
+ <authorname></authorname>
+ <authoremail></authoremail>
+ <version>0.28.1</version>
+ <description>
+
+ </description>
+ </documentation>
+ <settings>
+ <notationlanguage>UML 1.4</notationlanguage>
+ <showboldnames>false</showboldnames>
+ <useguillemots>false</useguillemots>
+ <showassociationnames>true</showassociationnames>
+ <showvisibility>false</showvisibility>
+ <showmultiplicity>false</showmultiplicity>
+ <showinitialvalue>false</showinitialvalue>
+ <showproperties>false</showproperties>
+ <showtypes>true</showtypes>
+ <showstereotypes>false</showstereotypes>
+ <showsingularmultiplicities>true</showsingularmultiplicities>
+ <defaultshadowwidth>1</defaultshadowwidth>
+ <hidebidirectionalarrows>true</hidebidirectionalarrows>
+ <fontname>Dialog</fontname>
+ <fontsize>12</fontsize>
+ <defaultstereotypeview>0</defaultstereotypeview>
+ <activediagram>ConfigClassDiagram</activediagram>
+ </settings>
+ <searchpath href="PROJECT_DIR" />
+ <members>
+ <member type="profile"
+ name="tradefed.zargo_profile.profile" />
+ <member type="xmi"
+ name="tradefed.zargo.xmi" />
+ <member type="pgml"
+ name="tradefed.zargo_MajorPackageDependency.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="MajorPackageDependency" />
+ <member type="pgml"
+ name="tradefed.zargo_CommandRunSequence.pgml"
+ diagramclass="org.argouml.sequence2.diagram.UMLSequenceDiagram"
+ diagramname="CommandRunSequence" />
+ <member type="pgml"
+ name="tradefed.zargo_PackageDependencies.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="PackageDependencies" />
+ <member type="pgml"
+ name="tradefed.zargo_TargetSetupClassDiagram.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="TargetSetupClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_DeviceClassDiagram.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="DeviceClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_RunInstance_doRun.pgml"
+ diagramclass="org.argouml.sequence2.diagram.UMLSequenceDiagram"
+ diagramname="RunInstance_doRun" />
+ <member type="pgml"
+ name="tradefed.zargo_CollaborationDiagram.pgml"
+ diagramclass="org.argouml.uml.diagram.collaboration.ui.UMLCollaborationDiagram"
+ diagramname="Collaboration Diagram" />
+ <member type="pgml"
+ name="tradefed.zargo_main_ClassDiagram.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="TestTypesClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_ClassDiagram.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="ResultClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_ClassDiagram9.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="InvokerClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_ClassDiagram10.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="ConfigClassDiagram" />
+ <member type="pgml"
+ name="tradefed.zargo_ClassDiagram11.pgml"
+ diagramclass="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram"
+ diagramname="CommandClassDiagram" />
+ <member type="todo"
+ name="tradefed.zargo.todo" />
+ </members>
+ <historyfile name="" />
+ </argo>
+<profile>
+ <plugin>
+ UML 1.4
+ </plugin>
+ <plugin>
+ Java
+ </plugin>
+ <plugin>
+ GoodPractices
+ </plugin>
+ <plugin>
+ CodeGeneration
+ </plugin>
+</profile>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Sun Feb 14 17:06:35 PST 2010'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.28.1(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DCD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DCE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E48'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E49'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EC6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EC7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000ECD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000ECE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000ED3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000ED4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FCB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FCC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FD1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FD2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FD6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FD7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FDB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FDC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FE1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FE6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FEA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FEB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FEF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FF0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FF8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FF9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FFE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FFF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001004'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001005'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000100A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000100B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000102F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001030'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001035'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001036'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000103B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000103C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001041'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001042'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001046'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001047'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000104B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000104C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001050'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001051'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001063'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001064'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001069'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000106A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000106F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001070'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001074'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001075'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001079'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000107A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000107E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000107F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000108E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000108F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001094'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001095'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010C6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001117'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001118'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001142'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001143'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001147'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001148'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000114C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000114D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001375'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001376'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013ED'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013EE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001455'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001456'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000145C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000145D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001462'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001463'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001468'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001469'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014E5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014E6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001511'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001512'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014F8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014F9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001570'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001571'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001620'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001621'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001627'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001628'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000162D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000162E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001633'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001634'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000167A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000167B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016BA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016BB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016EE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016EF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001617'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001618'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001651'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001652'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016D3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016D4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001713'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001714'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001751'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001752'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000175D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000175E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001762'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001763'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001808'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001809'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000180E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000180F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000184D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000184E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000187A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000187B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001880'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001881'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001930'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001931'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001937'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001938'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000193D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000193E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000196F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001970'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019AD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019AE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019DF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019E0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A44'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A45'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A63'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A64'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A68'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A69'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A6F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A70'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A9D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A9E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AA2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AA3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ACF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AD0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AEB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AEC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001910'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001911'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000193A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000193B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019AD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019AE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019E4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019E5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A18'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A19'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A25'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AAD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AAE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AB3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AB4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AF4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B1F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B20'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B25'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B26'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BC8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BC9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BCF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BD0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BD5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BD6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C08'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C09'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C73'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C7A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CD7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CD8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CEA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CEB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CEF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CF0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CF4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CF5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CFB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D5B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D74'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D75'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A21'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A22'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A54'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A59'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A60'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A65'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A66'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A71'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A72'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A77'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A78'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AEE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AEF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B37'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B80'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B90'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B91'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C28'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C29'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D48'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D49'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D50'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D55'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D56'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D88'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D89'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E61'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E62'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E76'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E77'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E87'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E88'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F00'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F01'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FEA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FEB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FEC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FEE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FEF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002049'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002050'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002051'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002053'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002054'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002055'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002056'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002081'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002082'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002083'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002084'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002086'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002087'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002088'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002089'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002091'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002092'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002093'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002094'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002096'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002097'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002098'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002099'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002101'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002102'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002103'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002104'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002106'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002107'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002108'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002109'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002110'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002111'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002112'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002113'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002117'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002118'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002119'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002121'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002122'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002123'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002124'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002126'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002127'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002128'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002129'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002130'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002131'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002132'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002133'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002150'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002151'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002152'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002153'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002155'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002156'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002157'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002158'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002160'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002161'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002162'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002164'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002165'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002166'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002167'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002169'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002188'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002189'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021EA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021EB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002251'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002252'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002257'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002258'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002263'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002264'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022EB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022EC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002414'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002415'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002474'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002475'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002480'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002481'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002485'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002486'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002491'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002492'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002497'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002498'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002591'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002592'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002597'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002598'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002632'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002633'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002638'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002639'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002644'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002645'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002649'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002653'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002654'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002659'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002660'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002710'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002715'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002716'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002721'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002722'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002727'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002728'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002733'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002734'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027EA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027EE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027EF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002805'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002806'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028ED'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028EE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002901'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002902'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002906'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002907'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002970'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002971'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002976'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002977'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002982'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002983'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002988'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002989'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002994'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002995'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029EC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029ED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A00'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A01'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A21'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A22'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A27'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A33'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A34'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A39'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A40'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A46'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A47'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A55'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A56'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A63'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A64'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A68'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A69'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B42'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B43'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B49'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B74'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B75'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B82'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B83'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C59'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C63'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C64'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D49'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D50'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D51'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D57'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D58'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D65'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D66'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D73'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D80'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D85'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D86'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D91'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D92'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E42'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E43'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E48'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E49'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E54'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E55'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E60'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E61'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E66'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E67'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E72'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E73'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E78'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E84'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E85'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E90'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E91'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E96'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E97'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EEE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EEF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F03'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F04'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F12'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F13'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F18'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F72'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F73'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F77'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F78'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F81'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003079'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003080'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003085'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003086'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003091'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003092'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003097'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003098'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003245'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003246'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003253'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003254'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003261'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003262'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003268'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003269'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003270'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003276'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003277'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003284'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003285'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003292'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003293'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003299'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003311'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003312'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003316'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003317'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003320'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003321'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003325'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003326'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003392'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003393'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003481'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003482'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003488'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003489'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003495'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003496'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034EE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034EF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003503'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003504'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003511'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003512'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003517'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003518'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003523'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003524'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003528'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003529'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003530'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003545'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003546'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003550'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003554'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003555'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003559'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003563'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003564'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003568'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003569'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003572'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003573'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003577'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003578'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003581'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003582'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003588'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003589'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003642'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003643'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003647'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003648'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036EF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037EA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037EF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003800'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003801'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003805'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003806'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003810'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003811'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003816'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003817'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003821'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003822'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003826'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003827'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003891'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003892'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003897'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003898'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003940'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003941'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003945'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003946'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003950'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003954'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003955'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003959'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003963'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003964'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A00'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A05'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A06'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A11'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A12'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A18'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A23'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A24'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A33'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A34'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A38'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A39'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A42'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A43'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A51'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AEA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AEB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B02'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B03'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B08'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B09'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B14'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B15'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B20'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B21'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B26'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B27'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B32'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B33'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B38'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B39'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C33'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C34'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C41'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C42'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C48'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C49'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C50'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C51'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C58'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C60'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C61'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C68'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C69'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C72'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C73'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C77'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C78'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C81'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C86'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C87'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C91'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C92'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C96'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C97'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E94'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E95'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EEE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EEF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F00'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F04'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F05'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F09'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F13'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F14'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F18'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F19'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F25'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F30'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F34'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F35'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F39'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F44'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F45'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F50'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F51'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F56'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F57'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F62'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F63'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F68'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F69'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040EC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040ED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004105'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004106'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004111'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004112'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004117'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004118'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004124'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004125'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004130'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004131'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004136'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004137'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004142'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004143'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004148'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004149'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004154'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004155'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004160'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004161'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004172'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004173'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004179'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004181'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004182'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004188'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004189'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004190'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004196'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004197'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004260'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004264'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004265'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004269'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004270'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004274'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004275'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004280'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004281'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004286'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004287'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004292'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004293'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004298'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004299'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004380'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004381'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004385'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004386'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004390'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004394'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004395'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004399'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004456'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004457'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004464'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004465'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004470'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004471'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004476'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004477'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004482'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004483'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004488'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004489'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004494'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004495'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004511'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004512'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004516'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004517'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004540'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004541'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004570'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004574'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004575'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004579'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004583'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004584'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004588'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004589'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004610'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004611'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004669'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004670'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004671'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004676'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004677'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004682'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004683'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004688'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004689'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004703'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004704'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004729'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004733'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004734'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004784'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004785'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004789'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004794'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004795'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004945'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004946'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004950'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004954'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004955'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004959'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004963'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004964'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004968'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004969'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Model xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000B36'
+ name = 'TradeFedModel' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>/usr/local/google/users/brettchabot/master/vendor/google_tradefederation/src</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CDF'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Collaboration xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CDE'
+ name = 'CommandRunCollaboration' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D'
+ name = 'user' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ </UML:ClassifierRole>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'
+ name = 'command' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001442'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001441'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001444'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001445'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001446'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144A'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001449'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B'
+ name = 'config' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001450'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001451'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001452'/>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001480'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144E'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453'
+ name = 'DeviceManager' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001455'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001454'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001457'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001458'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001459'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145C'/>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001482'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145B'
+ name = 'TestDevice' isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001461'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001469'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E'
+ name = 'RunInstance' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001470'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ </UML:ClassifierRole>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001472'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001473'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001474'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001475'/>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479'/>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147E'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001471'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001478'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147B'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147D'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147F'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001481'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:Collaboration xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001482'
+ name = 'unattachedCollaboration' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:ClassifierRole.base>
+ <UML:ClassifierRole.availableContents>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AD'/>
+ </UML:ClassifierRole.availableContents>
+ </UML:ClassifierRole>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001491'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001490'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001494'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001493'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ <UML:ClassifierRole.base>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:ClassifierRole.base>
+ </UML:ClassifierRole>
+ <UML:ClassifierRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ClassifierRole.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:ClassifierRole.multiplicity>
+ </UML:ClassifierRole>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B1'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B2'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B4'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B8'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C3'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AF'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B7'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BB'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BC'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BD'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C5'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B9'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C0'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C2'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:DestroyAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C4'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C8'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C9'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CA'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D1'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D3'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E0'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E4'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C6'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CD'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CE'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CF'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CB'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D0'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D2'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:AssociationRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D6'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ <UML:AssociationEndRole xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D7'
+ isSpecification = 'false' isNavigable = 'false'>
+ <UML:AssociationEnd.participant>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEndRole>
+ </UML:Association.connection>
+ <UML:AssociationRole.message>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D8'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DA'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DC'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DE'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E6'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E8'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EA'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EC'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EE'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F0'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F2'/>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F4'/>
+ </UML:AssociationRole.message>
+ </UML:AssociationRole>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D4'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D9'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DB'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DD'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DF'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E1'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E3'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E5'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E7'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E9'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EB'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014ED'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EF'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F1'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:ReturnAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F3'
+ isSpecification = 'false' isAsynchronous = 'true'/>
+ </UML:Namespace.ownedElement>
+ <UML:Collaboration.interaction>
+ <UML:Interaction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B3'
+ name = 'newInteraction' isSpecification = 'false'>
+ <UML:Interaction.message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B4'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B0'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AF'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B8'
+ name = 'buildInfo' isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B0'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B7'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BD'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B8'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BA'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B9'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BA'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C0'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C3'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B0'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:DestroyAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C2'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C5'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C3'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BA'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:DestroyAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C4'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CA'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C5'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C6'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CF'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CA'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CC'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CB'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D1'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CF'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D0'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D3'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D2'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D8'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D1'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D3'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D4'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DA'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D8'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D9'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DC'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DA'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DB'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DE'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DC'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DD'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E0'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D3'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014DF'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D3'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E0'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E1'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E4'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C7'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E3'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E6'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E4'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E5'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E8'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E6'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E7'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EA'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E8'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E9'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EC'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EA'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EB'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EE'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EC'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014ED'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F0'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EE'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EF'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F2'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F0'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CallAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F1'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F4'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F2'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014D5'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F3'/>
+ </UML:Message.action>
+ </UML:Message>
+ </UML:Interaction.message>
+ </UML:Interaction>
+ </UML:Collaboration.interaction>
+ </UML:Collaboration>
+ </UML:Namespace.ownedElement>
+ <UML:Collaboration.interaction>
+ <UML:Interaction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001447'
+ name = 'newInteraction' isSpecification = 'false'>
+ <UML:Interaction.message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144A'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001444'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001449'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001452'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144A'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144F'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144E'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145C'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001457'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145B'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001475'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145C'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001472'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001471'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479'
+ isSpecification = 'false'>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001472'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:ReturnAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001478'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147E'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E'/>
+ </UML:Message.receiver>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001472'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:DestroyAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147D'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001480'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147E'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144F'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:DestroyAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147F'/>
+ </UML:Message.action>
+ </UML:Message>
+ <UML:Message xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001482'
+ isSpecification = 'false'>
+ <UML:Message.activator>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479'/>
+ </UML:Message.activator>
+ <UML:Message.sender>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440'/>
+ </UML:Message.sender>
+ <UML:Message.receiver>
+ <UML:ClassifierRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453'/>
+ </UML:Message.receiver>
+ <UML:Message.predecessor>
+ <UML:Message xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001480'/>
+ </UML:Message.predecessor>
+ <UML:Message.communicationConnection>
+ <UML:AssociationRole xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001457'/>
+ </UML:Message.communicationConnection>
+ <UML:Message.action>
+ <UML:CreateAction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001481'/>
+ </UML:Message.action>
+ </UML:Message>
+ </UML:Interaction.message>
+ </UML:Interaction>
+ </UML:Collaboration.interaction>
+ </UML:Collaboration>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CDF'
+ name = 'src_path' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE1'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE4'
+ name = 'com' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE5'
+ name = 'android' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6'
+ name = 'tradefed' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001160'/>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001399'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7'
+ name = 'targetsetup' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001167'/>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000139F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Prepares test environment for a single test run
+downloads test files, flashing device images, etc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE3'
+ name = 'TargetSetupError.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE9'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8'
+ name = 'TargetSetupError' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CED'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A fatal error occured while preparing the target for testing.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A5'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D4'
+ name = 'TargetSetupError' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>reason
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new (@link TargetSetupError} with a meaningful error message
+@param reason</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D6'
+ name = 'reason' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D9'
+ name = 'TargetSetupError' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DA'
+ language = 'Java' body = ' super(reason); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEE'
+ name = 'BuildInfo.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CF0'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'
+ name = 'BuildInfo' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CF1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Holds information about the build under test
+ <p/>
+ TODO: what other generic interfaces need to be added:
+ Some potential candidates:
+ - getBuildDescription - user meaningful string describing build</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E5'
+ name = 'getBuildId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the unique identifier of build under test
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@return the unique identifier of build under test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019EA'
+ name = 'getBuildFilePath' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019EE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>alias unique name of build file. The set of available alias'es will be implementation
+ specific
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019EF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>absolute file path of build file
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the local file path a build file with given alias
+
+@param alias unique name of build file. The set of available alias'es will be implementation
+ specific
+
+@return absolute file path of build file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019EC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019ED'
+ name = 'alias' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFA'
+ name = 'StubBuildInfo.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFC'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFB'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFB'
+ name = 'StubBuildInfo' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D8B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Placeholder empty implementation of a {@link BuildInfo}
+
+ TODO: make this package-private.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F3'
+ name = 'getBuildId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F7'
+ name = 'getBuildId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F8'
+ language = 'Java' body = ' return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F9'
+ name = 'getBuildFilePath' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FC'
+ name = 'alias' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FE'
+ name = 'getBuildFilePath' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FF'
+ language = 'Java' body = ' return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFE'
+ name = 'TargetPreparor.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D95'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D96'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015E3'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D95'
+ name = 'TargetPreparor.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D96'
+ name = 'TargetPreparor.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015E3'
+ name = 'TargetPreparor.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D00'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'
+ name = 'TargetPreparor' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001DAC'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D01'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Prepares the test environment for the test run.
+ <p/>
+ For example, installs software, tweaks env settings for testing, launches targets etc
+ <p/>
+ TODO: this class could use a better name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001DAC'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A02'
+ name = 'setUp' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A07'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>buildInfo data about the build under test.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A08'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>TargetSetupError if fatal error occurred setting up device
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A09'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Perform the target setup for testing.
+
+@param device the {@link TestDevice} to prepare
+@param buildInfo data about the build under test.
+
+@throws TargetSetupError if fatal error occurred setting up device</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A05'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A06'
+ name = 'buildInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D02'
+ name = 'StubTargetPreparor.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA2'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015F9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015FA'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA2'
+ name = 'StubTargetPreparor.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D02'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA3'
+ name = 'StubTargetPreparor.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D02'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015F9'
+ name = 'StubTargetPreparor.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D02'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015FA'
+ name = 'StubTargetPreparor.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D02'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D04'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03'
+ name = 'StubTargetPreparor' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA5'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D05'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Placeholder empty implementation of a {@link TargetPreparor}
+
+ TODO: make this package-private.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A14'
+ name = 'setUp' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A19'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A16'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A17'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A18'
+ name = 'buildInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1A'
+ name = 'setUp' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1B'
+ language = 'Java' body = ' Log.d("TargetPreparor", "skipping target prepare step"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A14'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D8B'
+ name = 'StubBuildInfo -> BuildInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA5'
+ name = 'StubTargetPreparor -> TargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001167'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Component xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001306'
+ name = 'BuildProvider.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000135C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000135C'
+ name = 'BuildProvider.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001306'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001308'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'
+ name = 'BuildProvider' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AD'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001309'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Responsible for providing info regarding the build under test.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AD'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A0C'
+ name = 'getBuild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link BuildInfo} for build under test or <code>null</code> if no build is
+ available for testing
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A10'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>TargetSetupError if build info failed to be retrieved due to an unexpected error
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A11'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Retrieve the data for build under test
+
+@return the {@link BuildInfo} for build under test or <code>null</code> if no build is
+ available for testing
+
+@throws TargetSetupError if build info failed to be retrieved due to an unexpected error</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A0E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138E'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Generalization xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A5'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001536'
+ name = 'StubBuildProvider.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BB'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BA'
+ name = 'StubBuildProvider.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001536'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BB'
+ name = 'StubBuildProvider.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001536'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001538'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537'
+ name = 'StubBuildProvider' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BD'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001539'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ No-op empty implementation of a {@link BuildProvider}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DD'
+ name = 'getBuild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E1'
+ name = 'getBuild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E2'
+ language = 'Java' body = ' Log.d("BuildProvider", "skipping build provider step"); return new StubBuildInfo(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BD'
+ name = 'StubBuildProvider -> BuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'
+ name = 'invoker' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001162'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001165'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000116A'/>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001388'/>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001392'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001724'/>
+ <UML:Usage xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000139C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Controller for executing a single test run in trade fedaeration.
+Creates run delegates based on configuration and handles any fatal exceptions </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001162'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001165'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000116A'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001388'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001392'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001724'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'
+ name = 'BaseTestInvocation.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001606'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001607'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001608'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001609'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001610'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001611'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001612'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001613'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000190D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001606'
+ name = 'BaseTestInvocation.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001607'
+ name = 'BaseTestInvocation.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001608'
+ name = 'BaseTestInvocation.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001609'
+ name = 'BaseTestInvocation.java -> ConfigurationReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160A'
+ name = 'BaseTestInvocation.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160B'
+ name = 'BaseTestInvocation.java -> TestInvocationListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160C'
+ name = 'BaseTestInvocation.java -> BuildInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160D'
+ name = 'BaseTestInvocation.java -> BuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160E'
+ name = 'BaseTestInvocation.java -> TargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000160F'
+ name = 'BaseTestInvocation.java -> TargetSetupError' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001610'
+ name = 'BaseTestInvocation.java -> DeviceTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001611'
+ name = 'BaseTestInvocation.java -> RemoteTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001612'
+ name = 'BaseTestInvocation.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001613'
+ name = 'BaseTestInvocation.java -> TestListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000190D'
+ name = 'BaseTestInvocation.java -> TestResult' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1E'
+ name = 'BaseTestInvocation.java -> ConfigurationException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001544'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001546'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545'
+ name = 'BaseTestInvocation' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001615'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001547'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Default implementation of {@link TestInvocation}
+ <p/>
+ Loads major objects based on {@link Configuration}
+ - retrieves build
+ - prepares target
+ - runs tests
+ - reports results</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A20'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A23'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A24'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A25'
+ language = 'Java' body = ' "RunInstance"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A26'
+ name = 'BaseTestInvocation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A28'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a {@link BaseTestInvocation}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A29'
+ name = 'BaseTestInvocation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2A'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A26'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2B'
+ name = 'doRun' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A30'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2E'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2F'
+ name = 'config' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A31'
+ name = 'doRun' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A32'
+ language = 'Java' body = ' try { BuildProvider buildProvider = config.getBuildProvider(); TargetPreparor preparor = config.getTargetPreparor(); Test test = config.getTest(); TestInvocationListener listener = config.getTestInvocationListener(); BuildInfo info = buildProvider.getBuild(); preparor.setUp(device, info); runTests(device, test, listener); } catch (TargetSetupError e) { Log.e(LOG_TAG, e); } catch (IllegalArgumentException e) { Log.e(LOG_TAG, e); } catch (ConfigurationException e) { Log.e(LOG_TAG, e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A33'
+ name = 'runTests' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A39'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener the {@link TestListener} that listens for test results in real time
+
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A3A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the test
+
+@param device the {@link IDevice} to run tests on
+@param test the {@link Test} to run
+@param listener the {@link TestListener} that listens for test results in real time
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A35'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A36'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A37'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A38'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A3B'
+ name = 'runTests' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A3C'
+ language = 'Java' body = ' if (test instanceof DeviceTest) { ((DeviceTest)test).setDevice(device); } if (test instanceof RemoteTest) { // run as a remote test, so results are forwarded directly to TestInvocationListener ((RemoteTest)test).run(listener); } else if (listener instanceof TestListener){ // run as a JUnit test, and wrap the TestInvocationListener in a JUnit listener TestResult result = new TestResult(); result.addListener((TestListener)listener); test.run(result); } else { // TODO: add a class which can forward JUnit forwarder throw new UnsupportedOperationException(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A33'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001548'
+ name = 'TestInvocation.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001636'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001637'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001636'
+ name = 'TestInvocation.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001548'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001637'
+ name = 'TestInvocation.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001548'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154A'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549'
+ name = 'TestInvocation' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handles one TradeFederation test invocation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A3F'
+ name = 'doRun' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A44'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>config the {@link Configuration} of this test run.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Instantiate objects and perform the test run
+
+@param device the {@link TestDevice} to perform tests. May be <code>null</code> if tests to
+ run are not dependent on a device
+@param config the {@link Configuration} of this test run.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A42'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A43'
+ name = 'config' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Abstraction xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001615'
+ name = 'BaseTestInvocation -> TestInvocation' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'
+ name = 'config' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.comment>
+ <UML:Comment xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138D'/>
+ </UML:ModelElement.comment>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Stores state about a test run. Each RunInstance has one associated configuration, that encapsulated all associated info about the test run, such as:
+ - what run delegates to create (targetsetup, test, and result reporter)
+ - and finer-grained options of the state</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D0F'
+ name = 'ConfigurationFactory.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABE'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABE'
+ name = 'ConfigurationFactory.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D0F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D12'/>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001988'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'
+ name = 'Configuration.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001709'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B31'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001709'
+ name = 'Configuration.java -> DeviceRecovery' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170A'
+ name = 'Configuration.java -> TestInvocationListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170B'
+ name = 'Configuration.java -> BuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170C'
+ name = 'Configuration.java -> TargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170D'
+ name = 'Configuration.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B31'
+ name = 'Configuration.java -> ILogOutput' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D14'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D16'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'
+ name = 'Configuration' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D17'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Configuration information for a TradeFederation invocation.
+
+ Each TradeFederation invocation has a single Configuration. A Configuration stores all the
+ delegate objects that should be used during the invocation, and their associated {@link Option}'s</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559'
+ name = 'ConfigurationException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Thrown if config object could not be loaded *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001711'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B35'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B38'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B39'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3A'
+ language = 'Java' body = ' 7742154448569011969L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3B'
+ name = 'ConfigurationException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>msg a meaningful error message
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a {@link ConfigurationException}
+
+@param msg a meaningful error message</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3D'
+ name = 'msg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B40'
+ name = 'ConfigurationException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B41'
+ language = 'Java' body = ' super(msg); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B42'
+ name = 'getBuildProvider' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link BuildProvider} provided in the configuration
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B46'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B47'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link BuildProvider} from the configuration
+
+@return the {@link BuildProvider} provided in the configuration
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B44'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B48'
+ name = 'getTargetPreparor' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link BuildProvider} provided in the configuration
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link TargetPreparor} from the configuration
+
+@return the {@link BuildProvider} provided in the configuration
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4E'
+ name = 'getTest' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B51'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link Test} provided in the configuration
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B53'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link Test} to run from the configuration
+
+@return the {@link Test} provided in the configuration
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B50'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B54'
+ name = 'getTestInvocationListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B57'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link Test} provided in the configuration
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B58'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B59'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link TestInvocationListener} to use from the configuration
+
+@return the {@link Test} provided in the configuration
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5A'
+ name = 'getDeviceRecovery' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link DeviceRecovery} provided in the configuration.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link DeviceRecovery} to use from the configuration.
+
+@return the {@link DeviceRecovery} provided in the configuration.
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B60'
+ name = 'getLogOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B63'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link ILogOutput} provided in the configuration.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B64'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B65'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Gets the {@link ILogOutput} to use from the configuration.
+
+@return the {@link ILogOutput} provided in the configuration.
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B62'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B66'
+ name = 'getConfigurationObject' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>expectedType the expected object type
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the configuration object, with all its {@link Option} fields set
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ConfigurationException if config object could not be fully loaded, or was not the
+ correct type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Generic interface to get the configuration object with the given name.
+
+ This will create the object if necessary, and set all of its {@link Option} fields with
+ values supplied in the configuration.
+
+ In addition, if the current {@link Configuration} will be injected if the object
+ extends {@link ConfigurationReceiver}.
+
+@param name the unique name of the configuration object
+@param expectedType the expected object type
+
+@return the configuration object, with all its {@link Option} fields set
+
+@throws ConfigurationException if config object could not be fully loaded, or was not the
+ correct type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B69'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6B'
+ name = 'expectedType' isSpecification = 'false' kind = 'in'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1C'
+ name = 'ConfigurationReceiver.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1E'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D'
+ name = 'ConfigurationReceiver' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Simple interface to represent object that accepts a {@link Configuration}
+
+ TODO: can {@link Option} be used for this instead</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1A'
+ name = 'setConfiguration' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1D'
+ name = 'configuration' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'
+ name = 'AbstractConfiguration.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001641'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001642'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001643'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001644'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001645'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001646'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001647'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001648'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A48'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A50'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001641'
+ name = 'AbstractConfiguration.java -> DeviceRecovery' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001642'
+ name = 'AbstractConfiguration.java -> TestInvocationListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001643'
+ name = 'AbstractConfiguration.java -> TextResultReporter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001644'
+ name = 'AbstractConfiguration.java -> BuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001645'
+ name = 'AbstractConfiguration.java -> StubBuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001646'
+ name = 'AbstractConfiguration.java -> StubTargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001647'
+ name = 'AbstractConfiguration.java -> TargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001648'
+ name = 'AbstractConfiguration.java -> StubTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001589'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164D'
+ name = 'AbstractConfiguration.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A48'
+ name = 'AbstractConfiguration.java -> ILogOutput' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4D'
+ name = 'AbstractConfiguration.java -> Hashtable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A50'
+ name = 'AbstractConfiguration.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154E'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154D'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154D'
+ name = 'AbstractConfiguration' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164F'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ The abstract configuration base case that tracks loaded configuration objects</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A52'
+ name = 'BUILD_PROVIDER_NAME' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A55'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A56'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A57'
+ language = 'Java' body = ' "build_provider"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A58'
+ name = 'TARGET_PREPAROR_NAME' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5D'
+ language = 'Java' body = ' "target_preparor"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A5E'
+ name = 'TEST_NAME' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A61'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A62'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A63'
+ language = 'Java' body = ' "test"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A64'
+ name = 'DEVICE_RECOVERY_NAME' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A67'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A68'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A69'
+ language = 'Java' body = ' "device_recovery"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6A'
+ name = 'LOGGER_NAME' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A6F'
+ language = 'Java' body = ' "logger"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A70'
+ name = 'RESULT_REPORTER_NAME' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A73'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A75'
+ language = 'Java' body = ' "result_reporter"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A76'
+ name = 'mConfigMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> mapping of config object name to config object *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7C'
+ name = 'AbstractConfiguration' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7E'
+ name = 'AbstractConfiguration' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7F'
+ language = 'Java' body = ' mConfigMap = new Hashtable<String, Object>(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A80'
+ name = 'addObject' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A85'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>config the configuration object
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A86'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a loaded object to this configuration
+
+@param name the unique name of the configuration object
+@param config the configuration object</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A82'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A83'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A84'
+ name = 'configObject' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A87'
+ name = 'addObject' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A88'
+ language = 'Java' body = ' mConfigMap.put(name, configObject); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A80'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A89'
+ name = 'loadObject' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'true'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8C'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8D'
+ name = 'getBuildProvider' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A90'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A91'
+ name = 'getBuildProvider' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A92'
+ language = 'Java' body = ' return (BuildProvider)getConfigurationObject(BUILD_PROVIDER_NAME, BuildProvider.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A93'
+ name = 'getTargetPreparor' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A96'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A97'
+ name = 'getTargetPreparor' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A98'
+ language = 'Java' body = ' return (TargetPreparor)getConfigurationObject(TARGET_PREPAROR_NAME, TargetPreparor.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A93'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A99'
+ name = 'getTest' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9D'
+ name = 'getTest' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9E'
+ language = 'Java' body = ' return (Test)getConfigurationObject(TEST_NAME, Test.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A99'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9F'
+ name = 'getDeviceRecovery' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA3'
+ name = 'getDeviceRecovery' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA4'
+ language = 'Java' body = ' return (DeviceRecovery)getConfigurationObject(DEVICE_RECOVERY_NAME, DeviceRecovery.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA5'
+ name = 'getLogOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA9'
+ name = 'getLogOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAA'
+ language = 'Java' body = ' return (ILogOutput)getConfigurationObject(LOGGER_NAME, ILogOutput.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAB'
+ name = 'getTestInvocationListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAF'
+ name = 'getTestInvocationListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB0'
+ language = 'Java' body = ' return (TestInvocationListener)getConfigurationObject(RESULT_REPORTER_NAME, TestInvocationListener.class); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB1'
+ name = 'getConfigurationObject' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB4'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB6'
+ name = 'expectedType' isSpecification = 'false' kind = 'in'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB8'
+ name = 'getConfigurationObject' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB9'
+ language = 'Java' body = ' // TODO: implement this throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'
+ name = 'ArgsOptionParser.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A4'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADD'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE0'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE4'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE5'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C8'
+ name = 'ArgsOptionParser.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C9'
+ name = 'ArgsOptionParser.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A3'
+ name = 'ArgsOptionParser.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A4'
+ name = 'ArgsOptionParser.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADD'
+ name = 'ArgsOptionParser.java -> Field' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE0'
+ name = 'ArgsOptionParser.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE3'
+ name = 'ArgsOptionParser.java -> Arrays' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE4'
+ name = 'ArgsOptionParser.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE5'
+ name = 'ArgsOptionParser.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001553'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001555'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001554'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001554'
+ name = 'ArgsOptionParser' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001556'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ An option parser that parses options from command line arguments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016CB'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE7'
+ name = 'SHORT_NAME_PREFIX' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AEA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AEB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AEC'
+ language = 'Java' body = ' "-"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AED'
+ name = 'OPTION_NAME_PREFIX' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF2'
+ language = 'Java' body = ' "--"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF3'
+ name = 'ArgsOptionParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>optionSource
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param optionSource</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF5'
+ name = 'optionSource' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF8'
+ name = 'ArgsOptionParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF9'
+ language = 'Java' body = ' super(optionSource); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFA'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses the command-line arguments 'args', setting the @Option fields of the 'optionSource' provided to the constructor.
+ Returns a list of the positional arguments left over after processing all options.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFD'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFF'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B00'
+ language = 'Java' body = ' return parseOptions(Arrays.asList(args).iterator()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B01'
+ name = 'parseOptions' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B04'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B05'
+ name = 'parseOptions' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B06'
+ language = 'Java' body = ' final List<String> leftovers = new ArrayList<String>(); // Scan 'args'. while (args.hasNext()) { final String arg = args.next(); if (arg.equals(OPTION_NAME_PREFIX)) { // "--" marks the end of options and the beginning of positional arguments. break; } else if (arg.startsWith(OPTION_NAME_PREFIX)) { // A long option. parseLongOption(arg, args); } else if (arg.startsWith(SHORT_NAME_PREFIX)) { // A short option. parseGroupedShortOptions(arg, args); } else { // The first non-option marks the end of options. leftovers.add(arg); break; } } // Package up the leftovers. while (args.hasNext()) { leftovers.add(args.next()); } return leftovers; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B01'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B07'
+ name = 'parseLongOption' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B09'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0A'
+ name = 'arg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0B'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0C'
+ name = 'parseLongOption' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0D'
+ language = 'Java' body = ' // remove prefix to just get name String name = arg.replaceFirst("^" + OPTION_NAME_PREFIX, ""); String value = null; // Support "--name=value" as well as "--name value". final int equalsIndex = name.indexOf('='); if (equalsIndex != -1) { value = name.substring(equalsIndex + 1); name = name.substring(0, equalsIndex); } final Field field = fieldForArg(name); final Handler handler = getHandler(field.getGenericType()); if (value == null) { if (handler.isBoolean()) { value = arg.startsWith("--no-") ? "false" : "true"; } else { value = grabNextValue(args, name, field); } } setValue(optionSource, field, arg, handler, value); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B07'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0E'
+ name = 'parseGroupedShortOptions' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B10'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B11'
+ name = 'arg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B12'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B13'
+ name = 'parseGroupedShortOptions' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B14'
+ language = 'Java' body = ' for (int i = 1; i < arg.length(); ++i) { final String name = SHORT_NAME_PREFIX + arg.charAt(i); final Field field = fieldForArg(name); final Handler handler = getHandler(field.getGenericType()); String value; if (handler.isBoolean()) { value = "true"; } else { // We need a value. If there's anything left, we take the rest of this "short option". if (i + 1 < arg.length()) { value = arg.substring(i + 1); i = arg.length() - 1; } else { value = grabNextValue(args, name, field); } } setValue(optionSource, field, arg, handler, value); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B15'
+ name = 'grabNextValue' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>field
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001701'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the next element of 'args' if there is one. Uses 'name' and 'field' to
+ construct a helpful error message.
+
+@param args
+@param name
+@param field
+
+@returns
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B17'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B18'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B19'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1A'
+ name = 'field' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1E'
+ name = 'grabNextValue' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B1F'
+ language = 'Java' body = ' if (!args.hasNext()) { final String type = field.getType().getSimpleName().toLowerCase(); throw new RuntimeException("option '" + name + "' requires a " + type + " argument"); } return args.next(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B15'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'
+ name = 'OptionParser.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000174B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A14'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B71'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B72'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B75'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B78'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B79'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000174B'
+ name = 'OptionParser.java -> Collection' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A14'
+ name = 'OptionParser.java -> Collection' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B71'
+ name = 'OptionParser.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B72'
+ name = 'OptionParser.java -> Field' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B75'
+ name = 'OptionParser.java -> ParameterizedType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B73'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B78'
+ name = 'OptionParser.java -> Type' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B76'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B79'
+ name = 'OptionParser.java -> Collection' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7C'
+ name = 'OptionParser.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155D'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155C'
+ name = 'OptionParser' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001561'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>= { "-i", "--input-file" })
+ List<File> inputs = new ArrayList<File>();
+
+ }
+
+ class Main {
+ public static void main(String[] args) {
+ Options options = new Options();
+ List<String> inputFilenames = new OptionParser(options).parse(args);
+ for (String inputFilename : inputFilenames) {
+ if (!options.quiet) {
+ ...
+ }
+ ...
+ }
+ }
+ }
+
+ See also:
+
+ the getopt(1) man page
+ Python's "optparse" module (http://docs.python.org/library/optparse.html)
+ the POSIX "Utility Syntax Guidelines" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
+ the GNU "Standards for Command Line Interfaces" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
+
+
+ ported from dalvik.runner.OptionParser
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155E'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001562'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+
+ TODO: split up this javadoc into different objects
+
+ Parses command line options.
+
+ Strings in the passed-in String[] are parsed left-to-right. Each
+ String is classified as a short option (such as "-v"), a long
+ option (such as "--verbose"), an argument to an option (such as
+ "out.txt" in "-f out.txt"), or a non-option positional argument.
+
+ A simple short option is a "-" followed by a short option
+ character. If the option requires an argument (which is true of any
+ non-boolean option), it may be written as a separate parameter, but
+ need not be. That is, "-f out.txt" and "-fout.txt" are both
+ acceptable.
+
+ It is possible to specify multiple short options after a single "-"
+ as long as all (except possibly the last) do not require arguments.
+
+ A long option begins with "--" followed by several characters. If
+ the option requires an argument, it may be written directly after
+ the option name, separated by "=", or as the next argument. (That
+ is, "--file=out.txt" or "--file out.txt".)
+
+ A boolean long option '--name' automatically gets a '--no-name'
+ companion. Given an option "--flag", then, "--flag", "--no-flag",
+ "--flag=true" and "--flag=false" are all valid, though neither
+ "--flag true" nor "--flag false" are allowed (since "--flag" by
+ itself is sufficient, the following "true" or "false" is
+ interpreted separately). You can use "yes" and "no" as synonyms for
+ "true" and "false".
+
+ Each String not starting with a "-" and not a required argument of
+ a previous option is a non-option positional argument, as are all
+ successive Strings. Each String after a "--" is a non-option
+ positional argument.
+
+ Parsing of numeric fields such byte, short, int, long, float, and
+ double fields is supported. This includes both unboxed and boxed
+ versions (e.g. int vs Integer). If there is a problem parsing the
+ argument to match the desired type, a runtime exception is thrown.
+
+ File option fields are supported by simply wrapping the string
+ argument in a File object without testing for the existance of the
+ file.
+
+ Parameterized Collection fields such as List<File> and Set<String>
+ are supported as long as the parameter type is otherwise supported
+ by the option parser. The collection field should be initialized
+ with an appropriate collection instance.
+
+ The fields corresponding to options are updated as their options
+ are processed. Any remaining positional arguments are returned as a
+ List<String>.
+
+ Here's a simple example:
+
+ // This doesn't need to be a separate class, if your application doesn't warrant it.
+ // Non-@Option fields will be ignored.
+ class Options {
+@Option(names = { "-q", "--quiet" })
+ boolean quiet = false;
+
+ // Boolean options require a long name if it's to be possible to explicitly turn them off.
+ // Here the user can use --no-color.
+@Option(names = { "--color" })
+ boolean color = true;
+
+@Option(names = { "-m", "--mode" })
+ String mode = "standard; // Supply a default just by setting the field.
+
+@Option(names = { "-p", "--port" })
+ int portNumber = 8888;
+
+ // There's no need to offer a short name for rarely-used options.
+@Option(names = { "--timeout" })
+ double timeout = 1.0;
+
+@Option(names = { "-o", "--output-file" })
+ File output;
+
+ // Multiple options are added to the collection.
+ // The collection field itself must be non-null.
+@Option(names = { "-i", "--input-file" })
+ List<File> inputs = new ArrayList<File>();
+
+ }
+
+ class Main {
+ public static void main(String[] args) {
+ Options options = new Options();
+ List<String> inputFilenames = new OptionParser(options).parse(args);
+ for (String inputFilename : inputFilenames) {
+ if (!options.quiet) {
+ ...
+ }
+ ...
+ }
+ }
+ }
+
+ See also:
+
+ the getopt(1) man page
+ Python's "optparse" module (http://docs.python.org/library/optparse.html)
+ the POSIX "Utility Syntax Guidelines" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
+ the GNU "Standards for Command Line Interfaces" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
+
+
+ ported from dalvik.runner.OptionParser</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'
+ name = 'Handler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001564'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>field
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001565'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param string
+@param field</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBC'
+ name = 'isBoolean' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBF'
+ name = 'isBoolean' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC0'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC1'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'true'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an object of appropriate type for the given Handle, corresponding to 'valueText'.
+ Returns null on failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC4'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001566'
+ name = 'BooleanHandler' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001567'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an object of appropriate type for the given Handle, corresponding to 'valueText'.
+ Returns null on failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001799'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC7'
+ name = 'isBoolean' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCA'
+ name = 'isBoolean' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCB'
+ language = 'Java' body = ' return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCC'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCF'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD0'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD1'
+ language = 'Java' body = ' if (valueText.equalsIgnoreCase("true") || valueText.equalsIgnoreCase("yes")) { return Boolean.TRUE; } else if (valueText.equalsIgnoreCase("false") || valueText.equalsIgnoreCase("no")) { return Boolean.FALSE; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001568'
+ name = 'ByteHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017A6'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD3'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD6'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD7'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD8'
+ language = 'Java' body = ' try { return Byte.parseByte(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001569'
+ name = 'ShortHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017AE'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDA'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDD'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDE'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDF'
+ language = 'Java' body = ' try { return Short.parseShort(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156A'
+ name = 'IntegerHandler' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017B6'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE1'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE4'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE5'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE6'
+ language = 'Java' body = ' try { return Integer.parseInt(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156B'
+ name = 'LongHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017BE'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE8'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEB'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEC'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BED'
+ language = 'Java' body = ' try { return Long.parseLong(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156C'
+ name = 'FloatHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017C6'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEF'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF2'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF3'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF4'
+ language = 'Java' body = ' try { return Float.parseFloat(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156D'
+ name = 'DoubleHandler' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017CE'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF6'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF9'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFA'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFB'
+ language = 'Java' body = ' try { return Double.parseDouble(valueText); } catch (NumberFormatException ex) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156E'
+ name = 'StringHandler' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017D6'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFD'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C00'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C01'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C02'
+ language = 'Java' body = ' return valueText; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156F'
+ name = 'FileHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017DE'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C04'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C06'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C07'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C08'
+ name = 'translate' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C09'
+ language = 'Java' body = ' return new File(valueText); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C04'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7E'
+ name = 'handlers' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B81'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B83'
+ language = 'Java' body = ' new HashMap<Class<?>, Handler>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B84'
+ name = 'getHandler' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B87'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B76'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B88'
+ name = 'getHandler' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B89'
+ language = 'Java' body = ' if (type instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) type; Class rawClass = (Class<?>) parameterizedType.getRawType(); if (!Collection.class.isAssignableFrom(rawClass)) { throw new RuntimeException("cannot handle non-collection parameterized type " + type); } Type actualType = parameterizedType.getActualTypeArguments()[0]; if (!(actualType instanceof Class)) { throw new RuntimeException("cannot handle nested parameterized type " + type); } return getHandler(actualType); } if (type instanceof Class) { if (Collection.class.isAssignableFrom((Class) type)) { // could handle by just having a default of treating // contents as String but consciously decided this // should be an error throw new RuntimeException( "cannot handle non-parameterized collection " + type + ". " + "use a generic Collection to specify a desired element type"); } return handlers.get((Class<?>) type); } throw new RuntimeException("cannot handle unknown field type " + type); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B84'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8A'
+ name = 'optionSource' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B8F'
+ name = 'optionMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B92'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B93'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B94'
+ name = 'OptionParser' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B97'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new OptionParser for setting the @Option fields of 'optionSource'.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B96'
+ name = 'optionSource' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B98'
+ name = 'OptionParser' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B99'
+ language = 'Java' body = ' this.optionSource = optionSource; this.optionMap = makeOptionMap(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B94'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9A'
+ name = 'fieldForArg' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9D'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9E'
+ name = 'fieldForArg' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9F'
+ language = 'Java' body = ' final Field field = optionMap.get(name); if (field == null) { throw new RuntimeException("unrecognized option '" + name + "'"); } return field; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA0'
+ name = 'setValue' visibility = 'protected' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA3'
+ name = 'object' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA4'
+ name = 'field' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA5'
+ name = 'arg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA6'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA7'
+ name = 'valueText' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA8'
+ name = 'setValue' visibility = 'protected' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA9'
+ language = 'Java' body = ' Object value = handler.translate(valueText); if (value == null) { final String type = field.getType().getSimpleName().toLowerCase(); throw new RuntimeException("couldn't convert '" + valueText + "' to a " + type + " for option '" + arg + "'"); } try { field.setAccessible(true); if (Collection.class.isAssignableFrom(field.getType())) { Collection collection = (Collection)field.get(object); collection.add(value); } else { field.set(object, value); } } catch (IllegalAccessException ex) { throw new RuntimeException("internal error", ex); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAA'
+ name = 'makeOptionMap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Cache the available options and report any problems with the options themselves right away.
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAF'
+ name = 'makeOptionMap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB0'
+ language = 'Java' body = ' final HashMap<String, Field> optionMap = new HashMap<String, Field>(); final Class<?> optionClass = optionSource.getClass(); for (Field field : optionClass.getDeclaredFields()) { if (field.isAnnotationPresent(Option.class)) { final Option option = field.getAnnotation(Option.class); String name = option.name(); addNameToMap(optionMap, option.name(), field); if (option.shortName() != null && !"".equals(option.shortName())) { addNameToMap(optionMap, option.shortName(), field); } } } return optionMap; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB1'
+ name = 'addNameToMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>field
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param string
+@param field</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB4'
+ name = 'optionMap' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB5'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB6'
+ name = 'field' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB9'
+ name = 'addNameToMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBA'
+ language = 'Java' body = ' if (optionMap.put(name, field) != null) { throw new RuntimeException("found multiple @Options sharing the name '" + name + "'"); } if (getHandler(field.getGenericType()) == null) { throw new RuntimeException("unsupported @Option field type '" + field.getType() + "'"); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001570'
+ name = 'Option.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C11'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C14'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C17'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0E'
+ name = 'Option.java -> ElementType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001570'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C11'
+ name = 'Option.java -> Retention' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001570'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C14'
+ name = 'Option.java -> RetentionPolicy' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001570'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C12'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C17'
+ name = 'Option.java -> Target' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001570'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Component>
+ <UML:Abstraction xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164F'
+ name = 'AbstractConfiguration -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016CB'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001554'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155C'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001711'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001799'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001566'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017A6'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001568'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017AE'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001569'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017B6'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156A'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017BE'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156B'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017C6'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156C'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017CE'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156D'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017D6'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017DE'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000156F'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001563'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987'
+ name = 'ConfigurationFactory' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001989'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Abstract factory for configurations</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC0'
+ name = 'ConfigurationFactory' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC2'
+ name = 'ConfigurationFactory' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC3'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC4'
+ name = 'createDefaultConfiguration' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create the default {@link Configuration}, whose delegates will be no-op implementations</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC8'
+ name = 'createDefaultConfiguration' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC9'
+ language = 'Java' body = ' return new DefaultConfiguration(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACA'
+ name = 'createConfigurationFromXML' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create the configuration from given XML file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACD'
+ name = 'xmlFile' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACF'
+ name = 'createConfigurationFromXML' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD0'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD1'
+ name = 'createConfigurationFromArgs' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create the configuration from command line arguments</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD4'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD6'
+ name = 'createConfigurationFromArgs' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD7'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'
+ name = 'DefaultConfiguration.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B21'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B22'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B23'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B24'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B25'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B26'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B21'
+ name = 'DefaultConfiguration.java -> StubDeviceRecovery' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B22'
+ name = 'DefaultConfiguration.java -> StdoutLogger' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B23'
+ name = 'DefaultConfiguration.java -> TextResultReporter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B24'
+ name = 'DefaultConfiguration.java -> StubBuildProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B25'
+ name = 'DefaultConfiguration.java -> StubTargetPreparor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B26'
+ name = 'DefaultConfiguration.java -> InstrumentationTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198E'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198D'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198D'
+ name = 'DefaultConfiguration' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ The default trade federation configuration.
+
+ Returns stub no-op objects for most delegates, except
+ - uses a stdout logger and result reporter
+ - and a instrumentation test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B28'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B29'
+ name = 'loadObject' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2C'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2E'
+ name = 'loadObject' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2F'
+ language = 'Java' body = ' if (name.equals(BUILD_PROVIDER_NAME)) { return new StubBuildProvider(); } else if (name.equals(DEVICE_RECOVERY_NAME)) { return new StubDeviceRecovery(); } else if (name.equals(TARGET_PREPAROR_NAME)) { return new StubTargetPreparor(); } else if (name.equals(TEST_NAME)) { // run instrumentation tests by default return new InstrumentationTest(); } else if (name.equals(LOGGER_NAME)) { // output logs to stdout by default return new StdoutLogger(); } else if (name.equals(RESULT_REPORTER_NAME)) { return new TextResultReporter(); } throw new ConfigurationException(String.format("Could not find config object with name %s", name)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B29'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1D'
+ name = 'ConfigurationException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B28'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198D'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000154D'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Interface xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457E'
+ name = 'Option' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457F'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004580'
+ name = 'return' isSpecification = 'false' kind = 'return'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21'
+ name = 'command' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001163'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001164'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001169'/>
+ <UML:Usage xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000139A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Command-line interface to perform a single TradeFederation test run</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'
+ name = 'Command.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E67'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E6C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001410'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001412'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F1'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F2'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F4'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F6'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E67'
+ name = 'Command.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E6C'
+ name = 'Command.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140D'
+ name = 'Command.java -> AndroidDebugBridge' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140F'
+ name = 'Command.java -> DdmPreferences' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001410'
+ name = 'Command.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001412'
+ name = 'Command.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F1'
+ name = 'Command.java -> BaseDeviceManager' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F2'
+ name = 'Command.java -> DeviceManager' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F3'
+ name = 'Command.java -> DeviceNotAvailableException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F4'
+ name = 'Command.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F5'
+ name = 'Command.java -> BaseTestInvocation' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F6'
+ name = 'Command.java -> TestInvocation' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0D'
+ name = 'Command.java -> ConfigurationFactory' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0E'
+ name = 'Command.java -> ConfigurationException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D20'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D23'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22'
+ name = 'Command' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D24'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Command-line launcher for Trade Federation.
+ <p/>
+ Loads the test configuration based on command line arguments, connects to available device,
+ and delegates off to RunInstance to perform the running of tests</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D10'
+ name = 'Command' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D12'
+ name = 'Command' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D13'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D10'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D14'
+ name = 'run' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D18'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>args
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D19'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ The main worker method that will parse the command line arguments, and invoke the test run.
+
+@param args</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D16'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D17'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1A'
+ name = 'run' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1B'
+ language = 'Java' body = ' try { // TODO load this setting from config DdmPreferences.setLogLevel(LogLevel.INFO.getStringValue()); Configuration config = createConfiguration(args); Log.setLogOutput(config.getLogOutput()); TestInvocation instance = createRunInstance(); DeviceManager manager = getDeviceManager(); TestDevice device = manager.allocateDevice(); instance.doRun(device, config); } catch (DeviceNotAvailableException e) { System.out.println("Could not find device to test"); } catch (ConfigurationException e) { System.out.println(String.format("Failed to load configuration: %s", e.getMessage())); } exit(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D14'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1C'
+ name = 'exit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1F'
+ name = 'exit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D20'
+ language = 'Java' body = ' AndroidDebugBridge.terminate(); // System.exit(-1); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D21'
+ name = 'createRunInstance' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D24'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Factory method for creating a {@link BaseTestInvocation}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D25'
+ name = 'createRunInstance' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D26'
+ language = 'Java' body = ' return new BaseTestInvocation(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D21'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D27'
+ name = 'getDeviceManager' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Factory method for getting a reference to the {@link DeviceManager}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D29'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2B'
+ name = 'getDeviceManager' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2C'
+ language = 'Java' body = ' return BaseDeviceManager.getInstance(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D27'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2D'
+ name = 'createConfiguration' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Factory method for creating a {@link Configuration}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D30'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D32'
+ name = 'createConfiguration' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D33'
+ language = 'Java' body = ' return ConfigurationFactory.createConfigurationFromArgs(args); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D34'
+ name = 'printUsage' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D38'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Output the command line usage of this program to stdout</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D36'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D37'
+ name = 'config' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D39'
+ name = 'printUsage' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3A'
+ language = 'Java' body = ' // TODO: print this out from config? Also print out list of configs from // ConfigurationFactory? System.out.println("-p <package> where package is name of Android package to run tests"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D34'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3B'
+ name = 'main' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>args command line arguments. Currently supported: -p <package>
+
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D40'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Main entry point for TradeFederation command line launcher
+
+@param args command line arguments. Currently supported: -p <package>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3E'
+ name = 'args' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D41'
+ name = 'main' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D42'
+ language = 'Java' body = ' Command cmd = new Command(); cmd.run(args); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001163'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001164'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001169'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Collaboration xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001728'
+ name = 'unattachedCollaboration' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Dependency xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001160'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Package xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387'
+ name = 'device' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001727'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Largely built on top of ddmlib, and provides an (attempted) reliable communication mechanism with an Android target.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Interface xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'
+ name = 'TestDevice' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Provides an reliable and slightly higher level API to a ddmlib IDevice.
+
+ Retries device commands for a configurable amount, and provides an optional device recovery
+ interface for devices which have gone offline.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF4'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF7'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF8'
+ name = 'getIDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EFB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EFC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a reference to the associated DDMS IDevice
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EFA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Exception xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A4'
+ name = 'DeviceDisconnectedException' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Raised when device is no longer available for testing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Exception>
+ <UML:Class xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A6'
+ name = 'BaseTestDevice' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013B1'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EFF'
+ name = 'mIDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F02'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F03'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F04'
+ name = 'BaseTestDevice' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F07'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F08'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param device</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F06'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F09'
+ name = 'BaseTestDevice' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0A'
+ language = 'Java' body = ' mIDevice = device; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F04'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0B'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0E'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F10'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F11'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F12'
+ name = 'getIDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F15'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F14'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F16'
+ name = 'getIDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F17'
+ language = 'Java' body = ' // TODO Auto-generated method stub return mIDevice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F12'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'
+ name = 'DeviceManager' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1A'
+ name = 'allocateDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link TestDevice} for testing.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A3A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>DeviceNotAvailableException if no device is available.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Request a device for testing.
+
+@returns a {@link TestDevice} for testing.
+@throws DeviceNotAvailableException if no device is available.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F20'
+ name = 'freeDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F24'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the {@link TestDevice} to return to the pool.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F25'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return a device to the pool, making it available for testing.
+
+ Attempts to return a device that hasn't been previously allocated will be ignored.
+
+@param device the {@link TestDevice} to return to the pool.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F23'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F26'
+ name = 'registerListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IllegalStateException if a listener has already been registered
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B15'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register a listener for device's becoming available for testing.
+
+ Only one active listener at at time is supported.
+
+@throw IllegalStateException if a listener has already been registered</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F28'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F29'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2C'
+ name = 'removeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F30'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener the listener previously added.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Remove's a previously registered {@link DeviceListener}.
+
+ Attempts to remove a listener that hasn't been previously registered will be ignored.
+
+@param listener the listener previously added.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2F'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'
+ name = 'BaseDeviceManager' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AF'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159D'
+ name = 'NewDeviceListener' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB3'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ * Listener for new Android devices</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB4'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB9'
+ name = 'mSerial' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBE'
+ name = 'NewDeviceListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC0'
+ name = 'serial' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC1'
+ name = 'NewDeviceListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC2'
+ language = 'Java' body = ' mSerial = serial; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC3'
+ name = 'deviceChanged' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC6'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC7'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC8'
+ name = 'deviceChanged' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC9'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECA'
+ name = 'deviceConnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECD'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECE'
+ name = 'deviceConnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECF'
+ language = 'Java' body = ' if (mSerial == null) { setDevice(device); } else if (mSerial.equals(device.getSerialNumber())) { setDevice(device); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED0'
+ name = 'setDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED3'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED4'
+ name = 'setDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED5'
+ language = 'Java' body = ' mDevice = device; notify(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED6'
+ name = 'deviceDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED9'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDA'
+ name = 'deviceDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDB'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDC'
+ name = 'waitForDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDF'
+ name = 'waitTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE0'
+ name = 'waitForDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE1'
+ language = 'Java' body = ' synchronized (this) { if (mDevice == null) { try { wait(waitTime); } catch (InterruptedException e) { Log.w(LOG_TAG, "Waiting for device interrupted"); } } } return mDevice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E75'
+ name = 'sInstance' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E78'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7A'
+ name = 'mTestDevicesInUse' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E7F'
+ name = 'DEFAULT_MAX_WAIT_DEVICE_TIME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E82'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E83'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E84'
+ language = 'Java' body = ' 10000'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E85'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ * The default maximum time to wait for a device to be connected.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E86'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E89'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8B'
+ language = 'Java' body = ' "DeviceManager"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8C'
+ name = 'BaseDeviceManager' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ hide constructor, singleton instance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8F'
+ name = 'BaseDeviceManager' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E90'
+ language = 'Java' body = ' mTestDevicesInUse = new HashSet<TestDevice>(); AndroidDebugBridge.init(false /* clientSupport */); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E91'
+ name = 'getInstance' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E94'
+ name = 'getInstance' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E95'
+ language = 'Java' body = ' if (sInstance == null) { sInstance = new BaseDeviceManager(); } return sInstance; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E91'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E96'
+ name = 'allocateDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E99'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E98'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9A'
+ name = 'allocateDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9B'
+ language = 'Java' body = ' AndroidDebugBridge adbBridge = AndroidDebugBridge.createBridge(); for (IDevice device : adbBridge.getDevices()) { TestDevice testDevice = new BaseTestDevice(device); if (!mTestDevicesInUse.contains(testDevice)) { mTestDevicesInUse.add(testDevice); } } String deviceSerial = null; // TODO move this logic elsewhere Log.i(LOG_TAG, "Waiting for device..."); NewDeviceListener listener = new NewDeviceListener(deviceSerial); AndroidDebugBridge.addDeviceChangeListener(listener); IDevice device = listener.waitForDevice(DEFAULT_MAX_WAIT_DEVICE_TIME); AndroidDebugBridge.removeDeviceChangeListener(listener); if (device == null) { throw new DeviceNotAvailableException("Could not connect to device"); } else { Log.i(LOG_TAG, String.format("Connected to %s", device.getSerialNumber())); } return new BaseTestDevice(device); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E96'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9C'
+ name = 'freeDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9F'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA1'
+ name = 'freeDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA2'
+ language = 'Java' body = ' // TODO: log error if not present mTestDevicesInUse.remove(device); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA3'
+ name = 'registerListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA6'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA8'
+ name = 'registerListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA9'
+ language = 'Java' body = ' // TODO implement this throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAA'
+ name = 'removeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAD'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAF'
+ name = 'removeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB0'
+ language = 'Java' body = ' // TODO implement this throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AF'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013B0'/>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Stereotype xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013B0'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Abstraction xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013B1'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013B0'/>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Association xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013BB'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013BC'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013BD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013BE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A6'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013BF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013DF'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013E0'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013E7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013E6'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013E3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013EF'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F0'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F8'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001408'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001409'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000140A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000140B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000140C'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Interface xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'
+ name = 'DeviceListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001413'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Listens for device's becoming available for testing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F34'
+ name = 'deviceAvailable' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F37'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a device has become available for testing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F36'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Association xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001423'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001424'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001425'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001426'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001427'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.participant>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001727'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001592'
+ name = 'DeviceRecovery.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001594'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'
+ name = 'DeviceRecovery' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001595'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Interface for recovering a device that has gone offline.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E4C'
+ name = 'recoverDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E50'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the {@link TestDevice} to recover.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E51'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if device was recovered successfully, <code>false</code>
+ otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A3A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Attempt to recover the given device that can no longer be communicated with.
+
+@param device the {@link TestDevice} to recover.
+
+@returns <code>true</code> if device was recovered successfully, <code>false</code>
+ otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E4E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E4F'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001596'
+ name = 'DeviceNotAvailableException.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001598'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597'
+ name = 'DeviceNotAvailableException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001599'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Thrown when a device is no longer available for testing
+ e.g. the adb connection to the device has been lost, device has stopped responding to commands,
+ etc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A42'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E60'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E63'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E64'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E65'
+ language = 'Java' body = ' 4342591327878526398L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E66'
+ name = 'DeviceNotAvailableException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E68'
+ name = 'DeviceNotAvailableException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E69'
+ language = 'Java' body = ' super(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E66'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6A'
+ name = 'DeviceNotAvailableException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6C'
+ name = 'msg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6D'
+ name = 'DeviceNotAvailableException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6E'
+ language = 'Java' body = ' super(msg); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'
+ name = 'BaseDeviceManager.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A53'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A54'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A55'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A57'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A5B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CE7'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E72'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E73'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A53'
+ name = 'BaseDeviceManager.java -> AndroidDebugBridge' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A54'
+ name = 'BaseDeviceManager.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A55'
+ name = 'BaseDeviceManager.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A57'
+ name = 'BaseDeviceManager.java -> IDeviceChangeListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A56'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A5B'
+ name = 'BaseDeviceManager.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CE7'
+ name = 'BaseDeviceManager.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E72'
+ name = 'BaseDeviceManager.java -> HashSet' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E71'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E73'
+ name = 'BaseDeviceManager.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159C'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A8'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159F'
+ name = 'DeviceFatalError.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A1'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A0'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A0'
+ name = 'DeviceFatalError' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Thrown when a fatal error has occurred with device, and it should no longer be used for testing.
+
+ This should typically be used when the device is still visible through adb, but it is in some
+ known-to-be unrecoverable state. Or if an "interesting" exception condition happened, that
+ requires human inspection while device is in the current state.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ACD'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE5'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEA'
+ language = 'Java' body = ' -7928528651742852301L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEB'
+ name = 'DeviceFatalError' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>msg a descriptive error message of the error
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a {@link DeviceFatalError}.
+
+@param msg a descriptive error message of the error</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EED'
+ name = 'msg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF0'
+ name = 'DeviceFatalError' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF1'
+ language = 'Java' body = ' super(msg); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A3'
+ name = 'TestDevice.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ADC'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ADC'
+ name = 'TestDevice.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A3'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A5'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A6'
+ name = 'BaseTestDevice.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AE8'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AE8'
+ name = 'BaseTestDevice.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A8'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A6'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A9'
+ name = 'DeviceManager.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015AB'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015AC'
+ name = 'DeviceListener.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015AE'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A42'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ACD'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A0'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B9'
+ name = 'StubDeviceRecovery.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BB'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BA'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BA'
+ name = 'StubDeviceRecovery' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E55'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E56'
+ name = 'recoverDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E5A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E58'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E59'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E5B'
+ name = 'recoverDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E5C'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E56'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E55'
+ name = 'StubDeviceRecovery -> DeviceRecovery' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BA'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001593'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB3'
+ name = 'NewDeviceListener -> IDeviceChangeListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB2'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Comment xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138D'
+ isSpecification = 'false' body = 'All packages depend on config. But its a bit messy to draw'>
+ <UML:Comment.annotatedElement>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Comment.annotatedElement>
+ </UML:Comment>
+ <UML:Package xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390'
+ name = 'result' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000139D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Reports the test results for a test run.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148C'
+ name = 'TextResultReporter.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000158F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001590'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018E8'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000158F'
+ name = 'TextResultReporter.java -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001590'
+ name = 'TextResultReporter.java -> TestIdentifier' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018E8'
+ name = 'TextResultReporter.java -> ResultPrinter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC8'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148E'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'
+ name = 'TextResultReporter' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004576'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A test result reporter that forwards results to the JUnit text result printer</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018EA'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D08'
+ name = 'TextResultReporter' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0A'
+ name = 'TextResultReporter' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0B'
+ language = 'Java' body = ' super(new ResultPrinter(System.out)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D08'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'
+ name = 'TestResultForwarder.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FB'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FC'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FD'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001801'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001802'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001803'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001804'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C22'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C25'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FA'
+ name = 'TestResultForwarder.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FB'
+ name = 'TestResultForwarder.java -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FC'
+ name = 'TestResultForwarder.java -> TestIdentifier' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017FD'
+ name = 'TestResultForwarder.java -> BuildInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001801'
+ name = 'TestResultForwarder.java -> AssertionFailedError' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EBD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001802'
+ name = 'TestResultForwarder.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001803'
+ name = 'TestResultForwarder.java -> TestListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001804'
+ name = 'TestResultForwarder.java -> TestResult' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1F'
+ name = 'TestResultForwarder.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C22'
+ name = 'TestResultForwarder.java -> PrintStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C20'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C25'
+ name = 'TestResultForwarder.java -> PrintWriter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001573'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001575'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001574'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001574'
+ name = 'TestResultForwarder' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001806'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001576'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A class that listens to {@link ITestRunListener} events and forwards them to a
+ {@link junit.framework.TestListener}
+ <p/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001577'
+ name = 'TestIdentifierResult' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001578'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A class that converts a {@link TestIdentifier} to a JUnit {@link Test}
+
+ TODO: The JUnit {@link TestListener} seems to assume a descriptive interface of some sort
+ for Test, that is not in its defined methods. Assume for now that its toString()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6D'
+ name = 'mTestId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C70'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C71'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C72'
+ name = 'TestIdentifierResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C74'
+ name = 'testId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C75'
+ name = 'TestIdentifierResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C76'
+ language = 'Java' body = ' mTestId = testId; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C72'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C77'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C79'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7B'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7C'
+ language = 'Java' body = ' return 1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C77'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7D'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C81'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C80'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C82'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C83'
+ language = 'Java' body = ' // this class for reporting purposes only, ignore throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C84'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C88'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Specialize this to base equality on TestIdentifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C87'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C89'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8A'
+ language = 'Java' body = ' return mTestId.equals(other); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C84'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8B'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Specialize this to base hashCode on TestIdentifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8F'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C90'
+ language = 'Java' body = ' return mTestId.hashCode(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C91'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C94'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return a user-friendly descriptive string</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C95'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C96'
+ language = 'Java' body = ' // TODO: use ':' or '#' as separator? The eternal debate rages on! return String.format("%s:%s", mTestId.getClassName(), mTestId.getTestName()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C91'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001579'
+ name = 'RemoteException' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Class that can represent a remote {@link String} stack trace as a {@link Throwable} or
+ for display purposes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001878'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C99'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9E'
+ language = 'Java' body = ' 8510440697482917390L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C9F'
+ name = 'mStackTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA4'
+ name = 'RemoteException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA6'
+ name = 'stack' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA7'
+ name = 'RemoteException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA8'
+ language = 'Java' body = ' mStackTrace = stack; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA9'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAC'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAD'
+ language = 'Java' body = ' System.err.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAE'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB1'
+ name = 's' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C20'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB2'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB3'
+ language = 'Java' body = ' s.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB4'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB7'
+ name = 's' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB8'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB9'
+ language = 'Java' body = ' s.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBA'
+ name = 'setStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBD'
+ name = 'stackTrace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBE'
+ name = 'setStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBF'
+ language = 'Java' body = ' // Force exception to be thrown here. don't want parent to override the data. // alternatively could make this a no-op throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC0'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC3'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC4'
+ language = 'Java' body = ' return mStackTrace; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC5'
+ name = 'fillInStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC9'
+ name = 'fillInStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCA'
+ language = 'Java' body = ' // Force exception to be thrown here. don't want parent to override the data. // alternatively could make this a no-op throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C27'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2C'
+ language = 'Java' body = ' "TestResultForwarder"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C2D'
+ name = 'mJUnitListener' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C30'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C31'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C32'
+ name = 'TestResultForwarder' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C34'
+ name = 'junitListener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C35'
+ name = 'TestResultForwarder' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C36'
+ language = 'Java' body = ' mJUnitListener = junitListener; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C32'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C37'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C39'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3A'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3C'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3D'
+ language = 'Java' body = ' mJUnitListener.endTest(new TestIdentifierResult(test)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C37'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3E'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C44'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C41'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C42'
+ name = 'testId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C43'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C45'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C46'
+ language = 'Java' body = ' Test test = new TestIdentifierResult(testId); if (TestFailure.ERROR.equals(status)) { Throwable throwable = new RemoteException(trace); mJUnitListener.addError(test, throwable); } else { // TODO: is it accurate to represent the trace as AssertionFailedError? mJUnitListener.addFailure(test, new AssertionFailedError(trace)); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C47'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4A'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4C'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4D'
+ language = 'Java' body = ' // TODO: no run ended method on TestListener - would be good to propogate the elaspedTime // info up Log.i(LOG_TAG, String.format("run ended %d ms", elapsedTime)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C47'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4E'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C50'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C51'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C53'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C54'
+ language = 'Java' body = ' // TODO: no run failed method on TestListener - would be good to propagate this up Log.e(LOG_TAG, String.format("run failed: %s", errorMessage)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C55'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C59'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C58'
+ name = 'testCount' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5A'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5B'
+ language = 'Java' body = ' // TODO: no run started method on TestResult - would be good to propagate this up Log.i(LOG_TAG, String.format("run started: %d tests", testCount)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C55'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5C'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C60'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5F'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C61'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C62'
+ language = 'Java' body = ' Log.i(LOG_TAG, String.format("run stopped: %d ms", elapsedTime)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C63'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C67'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C65'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C66'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C68'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C69'
+ language = 'Java' body = ' mJUnitListener.startTest(new TestIdentifierResult(test)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C63'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCB'
+ name = 'invocationEnded' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCF'
+ name = 'invocationEnded' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD0'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD1'
+ name = 'invokationStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD4'
+ name = 'buildInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD6'
+ name = 'invokationStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD7'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD8'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDB'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDC'
+ name = 'log' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDE'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CDF'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE0'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE3'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE4'
+ name = 'numTests' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE6'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE7'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157B'
+ name = 'TestInvocationListener.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018C9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018CA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE9'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018C9'
+ name = 'TestInvocationListener.java -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018CA'
+ name = 'TestInvocationListener.java -> BuildInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE9'
+ name = 'TestInvocationListener.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157D'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'
+ name = 'TestInvocationListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Usage xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457A'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Listener for test results from the test invocation.
+
+ A test invocation can itself include multiple test runs, so the sequence of calls would be
+
+ - invokationStarted(BuildInfo)
+ - testRunStarted
+ - testStarted
+ - [testFailed]
+ - testEnded
+ ....
+ - testRunEnded
+ ....
+ - testRunStarted
+ ...
+ - testRunEnded
+ - invokationEnded()
+
+ Note that this is re-using the {@link com.android.ddmlib.testrunner.ITestRunListener}
+ because its a generic interface. The results being reported are not necessarily device specific.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEC'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CED'
+ name = 'invokationStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>buildInfo information about the build being tested
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the start of the test invocation
+
+@param buildInfo information about the build being tested</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF0'
+ name = 'buildInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF3'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name {@link String} name of the test run, unique per invocation
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ An alternate {@link #testRunStarted(int)} that provides a name for the test run
+
+@param name {@link String} name of the test run, unique per invocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF6'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF7'
+ name = 'numTests' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFA'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name {@link String} name of the test run, unique per invocation
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D00'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ An alternate {@link #testRunFailed(long)} that provides a log of the test run
+
+@param elapsedTime reported elapsed time, in milliseconds
+@param name {@link String} name of the test run, unique per invocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFD'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFE'
+ name = 'log' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D01'
+ name = 'invocationEnded' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D04'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>buildInfo information about the build being tested
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D05'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the end of the test invocation
+
+@param buildInfo information about the build being tested</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Abstraction xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001806'
+ name = 'TestResultForwarder -> TestInvocationListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001574'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001878'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001579'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018EA'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001574'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6C'
+ name = 'TestIdentifierResult -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001577'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEC'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEB'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004576'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004577'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Stereotype xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004577'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001393'
+ name = 'scheduler' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001394'/>
+ <UML:Usage xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457D'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000139B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>The scheduler is one of the main launch points of Trade Federation. Starting TradeFederation from the scheduler launches TF in a daemon mode of sorts, where it:
+ - monitors the available resources aka devices available for testing
+ - receives requests for test runs from a global scheduler
+ - once request is received, loads the Configuration for given test run, passes off to RunInstance to do the work
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001394'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001393'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Dependency xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001399'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DBF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Package xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493'
+ name = 'testtype' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001725'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001726'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'
+ name = 'InstrumentationTest.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001606'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001607'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001608'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001609'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001616'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001617'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001618'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001619'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D44'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D45'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001606'
+ name = 'InstrumentationTest.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001607'
+ name = 'InstrumentationTest.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001608'
+ name = 'InstrumentationTest.java -> IRemoteAndroidTestRunner' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001609'
+ name = 'InstrumentationTest.java -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160A'
+ name = 'InstrumentationTest.java -> RemoteAndroidTestRunner' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160B'
+ name = 'InstrumentationTest.java -> TestIdentifier' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160D'
+ name = 'InstrumentationTest.java -> Configuration' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000160E'
+ name = 'InstrumentationTest.java -> ConfigurationReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001616'
+ name = 'InstrumentationTest.java -> AssertionFailedError' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EBD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001617'
+ name = 'InstrumentationTest.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001618'
+ name = 'InstrumentationTest.java -> TestListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001619'
+ name = 'InstrumentationTest.java -> TestResult' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192C'
+ name = 'InstrumentationTest.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D44'
+ name = 'InstrumentationTest.java -> PrintStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C20'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D45'
+ name = 'InstrumentationTest.java -> PrintWriter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001492'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001495'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'
+ name = 'InstrumentationTest' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161D'/>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161E'/>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001496'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A Test that runs a instrumentation test package on given device, based on data provided in
+ {@link Configuration}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001497'
+ name = 'TestResultForwarder' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D86'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001498'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A class that listens to {@link ITestRunListener} events and stores them in a
+ {@link TestResult}.
+ <p/>
+ This class provides the glue between the JUnit test listener and the instrumentation test
+ listener</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D87'
+ name = 'mTestResult' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8C'
+ name = 'TestResultForwarder' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8E'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8F'
+ name = 'TestResultForwarder' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D90'
+ language = 'Java' body = ' mTestResult = result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D91'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D95'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D94'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D96'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D97'
+ language = 'Java' body = ' mTestResult.endTest(new TestIdentifierResult(test)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D91'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D98'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9B'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9C'
+ name = 'testId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9D'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D9F'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA0'
+ language = 'Java' body = ' Test test = new TestIdentifierResult(testId); if (TestFailure.ERROR.equals(status)) { Throwable throwable = new InstrumentationException(trace); mTestResult.addError(test, throwable); } else { // TODO: is it accurate to represent the trace as AssertionFailedError? mTestResult.addFailure(test, new AssertionFailedError(trace)); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D98'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA1'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA4'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA6'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA7'
+ language = 'Java' body = ' // TODO: no run ended method on TestResult - would be good to propogate the elaspedTime // info up Log.i(LOG_TAG, String.format("run ended %d ms", elapsedTime)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA8'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAB'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAD'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAE'
+ language = 'Java' body = ' // TODO: no run failed method on TestResult - would be good to propagate this up Log.e(LOG_TAG, String.format("run failed: %s", errorMessage)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAF'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB2'
+ name = 'testCount' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB4'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB5'
+ language = 'Java' body = ' // TODO: no run started method on TestResult - would be good to propagate this up Log.i(LOG_TAG, String.format("run started: %d tests", testCount)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DAF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB6'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB9'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBB'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBC'
+ language = 'Java' body = ' Log.i(LOG_TAG, String.format("run stopped: %d ms", elapsedTime)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBD'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC0'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC2'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC3'
+ language = 'Java' body = ' mTestResult.startTest(new TestIdentifierResult(test)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001499'
+ name = 'TestIdentifierResult' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC5'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A class that converts a {@link TestIdentifier} to a JUnit {@link Test}
+
+ TODO: The JUnit {@link TestListener} seems to assume a descriptive interface of some sort
+ for Test, that is not in its defined methods. Assume for now that its toString()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC6'
+ name = 'mTestId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCB'
+ name = 'TestIdentifierResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCD'
+ name = 'testId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCE'
+ name = 'TestIdentifierResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCF'
+ language = 'Java' body = ' mTestId = testId; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD0'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD4'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD5'
+ language = 'Java' body = ' return 1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD6'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD9'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDB'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDC'
+ language = 'Java' body = ' // this class for reporting purposes only, ignore throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDD'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Specialize this to base equality on TestIdentifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE0'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE2'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE3'
+ language = 'Java' body = ' return mTestId.equals(other); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE4'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Specialize this to base hashCode on TestIdentifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE8'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE9'
+ language = 'Java' body = ' return mTestId.hashCode(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEA'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DED'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return a user-friendly descriptive string</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEE'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEF'
+ language = 'Java' body = ' // TODO: use ':' or '#' as separator? The eternal debate rages on! return String.format("%s:%s", mTestId.getClassName(), mTestId.getTestName()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149B'
+ name = 'InstrumentationException' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Class that can represent a remote {@link String} stack trace as a {@link Throwable} or
+ for display purposes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E6'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF2'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF7'
+ language = 'Java' body = ' 8510440697482917390L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF8'
+ name = 'mStackTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFD'
+ name = 'InstrumentationException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFF'
+ name = 'stack' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E00'
+ name = 'InstrumentationException' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E01'
+ language = 'Java' body = ' mStackTrace = stack; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E02'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E05'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E06'
+ language = 'Java' body = ' System.err.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E02'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E07'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E09'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0A'
+ name = 's' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C20'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0B'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0C'
+ language = 'Java' body = ' s.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E07'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0D'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E10'
+ name = 's' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E11'
+ name = 'printStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E12'
+ language = 'Java' body = ' s.print(mStackTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E13'
+ name = 'setStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E15'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E16'
+ name = 'stackTrace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E17'
+ name = 'setStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E18'
+ language = 'Java' body = ' // Force exception to be thrown here. don't want parent to override the data. // alternatively could make this a no-op throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E13'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E19'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1C'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1D'
+ language = 'Java' body = ' return mStackTrace; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E19'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1E'
+ name = 'fillInStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E21'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E22'
+ name = 'fillInStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E23'
+ language = 'Java' body = ' // Force exception to be thrown here. don't want parent to override the data. // alternatively could make this a no-op throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D47'
+ name = 'mPackageName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4C'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The Android manifest package to run *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D4E'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D51'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D53'
+ language = 'Java' body = ' "InstrumentationTest"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D54'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D57'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D58'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D59'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5A'
+ name = 'setDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5D'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5F'
+ name = 'setDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D60'
+ language = 'Java' body = ' mDevice = device; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D61'
+ name = 'getDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D64'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D63'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D65'
+ name = 'getDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D66'
+ language = 'Java' body = ' return mDevice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D61'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D67'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D69'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6B'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6C'
+ language = 'Java' body = ' // TODO: not sure we even want to support this // a possible implementation is to issue a adb shell am instrument -e count command when // this is first called and cache the result throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D67'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6D'
+ name = 'createRemoteAndroidTestRunner' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D72'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D73'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D70'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D71'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D74'
+ name = 'createRemoteAndroidTestRunner' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D75'
+ language = 'Java' body = ' return new RemoteAndroidTestRunner(packageName, device); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D76'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D79'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7B'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7C'
+ language = 'Java' body = ' // TODO: temporarily throw IllegalArgumentException is all valid inputs are not provided // Consider instead if (mPackageName == null) { throw new IllegalArgumentException("package name has not been set"); } if (mDevice == null) { throw new IllegalArgumentException("Device has not been set"); } IRemoteAndroidTestRunner runner = createRemoteAndroidTestRunner(mPackageName, mDevice.getIDevice()); runner.run(listener); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D76'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7D'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D81'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IllegalArgumentException if package name or device is not set
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D82'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the instrumentation test on device.
+
+@throws IllegalArgumentException if package name or device is not set</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D80'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D83'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D84'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149D'
+ name = 'RemoteTest.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171A'
+ name = 'RemoteTest.java -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171B'
+ name = 'RemoteTest.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149F'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'
+ name = 'RemoteTest' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004579'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A specialization of JUnit Test that reports results to a {@link ITestRunListener}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E36'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004579'
+ name = 'extends' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E37'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the tests, and reports results to the listener
+@param listener</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E39'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3A'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Abstraction xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161D'
+ name = 'InstrumentationTest -> RemoteTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161E'
+ name = 'InstrumentationTest -> ConfigurationReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E6'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149B'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001725'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001726'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001588'
+ name = 'StubTest.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A0B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A0C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A0B'
+ name = 'StubTest.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001588'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A0C'
+ name = 'StubTest.java -> TestResult' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001588'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158A'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001589'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001589'
+ name = 'StubTest' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E26'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ No-op empty test implementation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E27'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E29'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2B'
+ name = 'countTestCases' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2C'
+ language = 'Java' body = ' // TODO Auto-generated method stub return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E27'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2D'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E30'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E32'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E33'
+ language = 'Java' body = ' // TODO Auto-generated method stub '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158E'
+ name = 'DeviceTest.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A25'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A26'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A25'
+ name = 'DeviceTest.java -> TestDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A26'
+ name = 'DeviceTest.java -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001590'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'
+ name = 'DeviceTest' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004578'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001591'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A JUnit test that needs a reference to a {@link TestDevice}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3F'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004578'
+ name = 'extends' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E40'
+ name = 'setDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E44'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Inject the device under test
+
+@param device</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E42'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E43'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E46'
+ name = 'getDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E49'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the device under test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Abstraction xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192E'
+ name = 'InstrumentationTest -> DeviceTest' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D86'
+ name = 'TestResultForwarder -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001497'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEB'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC5'
+ name = 'TestIdentifierResult -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001499'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E26'
+ name = 'StubTest -> Test' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001589'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E36'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Interface xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3F'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CD'
+ name = 'log' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CC'
+ name = 'StdoutLogger.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F39'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F39'
+ name = 'StdoutLogger.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CC'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3A'
+ name = 'StdoutLogger.java -> ILogOutput' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CC'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3B'
+ name = 'StdoutLogger.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CC'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CF'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CE'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CE'
+ name = 'StdoutLogger' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3F'
+ name = 'printAndPromptLog' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F42'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F43'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F44'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F46'
+ name = 'printAndPromptLog' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F47'
+ language = 'Java' body = ' printLog( logLevel, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F48'
+ name = 'printLog' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4B'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4C'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4D'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F4F'
+ name = 'printLog' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F50'
+ language = 'Java' body = ' // TODO: for now, jst redirect back to the standard ddms logger Log.printLog(logLevel, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F48'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3E'
+ name = 'StdoutLogger -> ILogOutput' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3D'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Usage xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457B'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Usage>
+ <UML:Usage xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457C'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Usage>
+ <UML:Usage xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457D'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Package xmi.idref = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001393'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Package xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10'/>
+ </UML:Dependency.supplier>
+ </UML:Usage>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93'
+ name = 'ddmlib' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001397'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Existing library that provides interfaces for detecting and communicating with Android devices.
+
+From a logical perspective, the use of this package is encapsulated within the com.android.tradefed.device package</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'
+ name = 'IDevice' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002045'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A Device. It can be a physical device or an emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002046'
+ name = 'DeviceState' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002047'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ The state of a device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002048'
+ name = 'BOOTLOADER' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000204D'
+ name = 'OFFLINE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036EA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036EB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002052'
+ name = 'ONLINE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036EC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036ED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036EE'
+ name = 'mState' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F3'
+ name = 'DeviceState' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F5'
+ name = 'state' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F6'
+ name = 'DeviceState' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F7'
+ language = 'Java' body = ' mState = state; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F8'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>state the device state.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link DeviceState} object or <code>null</code> if the state is unknown.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link DeviceState} from the string returned by <code>adb devices</code>.
+@param state the device state.
+@return a {@link DeviceState} object or <code>null</code> if the state is unknown.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002046'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FB'
+ name = 'state' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036FF'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003700'
+ language = 'Java' body = ' for (DeviceState deviceState : values()) { if (deviceState.mState.equals(state)) { return deviceState; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A8'
+ name = 'PROP_BUILD_VERSION' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AD'
+ language = 'Java' body = ' "ro.build.version.release"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036AE'
+ name = 'PROP_BUILD_API_LEVEL' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B3'
+ language = 'Java' body = ' "ro.build.version.sdk"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B4'
+ name = 'PROP_BUILD_CODENAME' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036B9'
+ language = 'Java' body = ' "ro.build.version.codename"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BA'
+ name = 'PROP_DEBUGGABLE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036BF'
+ language = 'Java' body = ' "ro.debuggable"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C0'
+ name = 'FIRST_EMULATOR_SN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C5'
+ language = 'Java' body = ' "emulator-5554"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Serial number of the first connected emulator. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036C7'
+ name = 'CHANGE_STATE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CC'
+ language = 'Java' body = ' 0x0001'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Device change bit mask: {@link DeviceState} change. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036CE'
+ name = 'CHANGE_CLIENT_LIST' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D3'
+ language = 'Java' body = ' 0x0002'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Device change bit mask: {@link Client} list change. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D5'
+ name = 'CHANGE_BUILD_INFO' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036D9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DA'
+ language = 'Java' body = ' 0x0004'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Device change bit mask: build info change. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DC'
+ name = 'PROP_BUILD_VERSION_NUMBER' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036DF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E1'
+ language = 'Java' body = ' PROP_BUILD_API_LEVEL'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Use {@link #PROP_BUILD_API_LEVEL}. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E2'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>@deprecated Use {@link #PROP_BUILD_API_LEVEL}. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003701'
+ name = 'getSerialNumber' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003704'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the serial number of the device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003703'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003705'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003708'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the name of the AVD or <code>null</code> if there isn't any.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003709'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the AVD the emulator is running.
+ <p/>This is only valid if {@link #isEmulator()} returns true.
+ <p/>If the emulator is not running any AVD (for instance it's running from an Android source
+ tree build), this method will return "<code>&lt;build&gt;</code>".
+@return the name of the AVD or <code>null</code> if there isn't any.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003707'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370A'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the state of the device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002046'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370E'
+ name = 'getProperties' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003711'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the device properties. It contains the whole output of 'getprop'</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003710'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003712'
+ name = 'getPropertyCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003715'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the number of property for this device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003714'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003716'
+ name = 'getProperty' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name the name of the value to return.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the value or <code>null</code> if the property does not exist.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a property value.
+@param name the name of the value to return.
+@return the value or <code>null</code> if the property does not exist.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003718'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003719'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371D'
+ name = 'isOnline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003720'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if {@link #getState()} returns {@link DeviceState#ONLINE}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003721'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the device is ready.
+@return <code>true</code> if {@link #getState()} returns {@link DeviceState#ONLINE}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003722'
+ name = 'isEmulator' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003725'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns <code>true</code> if the device is an emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003724'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003726'
+ name = 'isOffline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003729'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if {@link #getState()} returns {@link DeviceState#OFFLINE}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the device is offline.
+@return <code>true</code> if {@link #getState()} returns {@link DeviceState#OFFLINE}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003728'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372B'
+ name = 'isBootLoader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if {@link #getState()} returns {@link DeviceState#BOOTLOADER}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the device is in bootloader mode.
+@return <code>true</code> if {@link #getState()} returns {@link DeviceState#BOOTLOADER}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003730'
+ name = 'hasClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003733'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the {@link Device} has {@link Client}s.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003732'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003734'
+ name = 'getClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003737'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the array of clients.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003736'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002352'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003738'
+ name = 'getClient' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>applicationName the name of the application
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the <code>Client</code> object or <code>null</code> if no match was found.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link Client} by its application name.
+@param applicationName the name of the application
+@return the <code>Client</code> object or <code>null</code> if no match was found.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373B'
+ name = 'applicationName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000373F'
+ name = 'getSyncService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003742'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>null</code> if the SyncService couldn't be created. This can happen if adb
+ refuse to open the connection because the {@link IDevice} is invalid (or got disconnected).
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003743'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if the connection with adb failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003744'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link SyncService} object to push / pull files to and from the device.
+@return <code>null</code> if the SyncService couldn't be created. This can happen if adb
+ refuse to open the connection because the {@link IDevice} is invalid (or got disconnected).
+@throws IOException if the connection with adb failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003741'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003745'
+ name = 'getFileListingService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003748'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link FileListingService} for this device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003747'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003749'
+ name = 'getScreenshot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the screenshot as a <code>RawImage</code> or <code>null</code> if
+ something went wrong.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Takes a screen shot of the device and returns it as a {@link RawImage}.
+@return the screenshot as a <code>RawImage</code> or <code>null</code> if
+ something went wrong.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374F'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003754'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>receiver The receiver object getting the result from the command.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003755'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003756'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Executes a shell command on the device, and sends the result to a receiver.
+@param command The command to execute
+@param receiver The receiver object getting the result from the command.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003751'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003752'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003753'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003757'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>receiver the receiver to receive the event log entries.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the event log service and outputs the event log to the {@link LogReceiver}.
+@param receiver the receiver to receive the event log entries.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003759'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375A'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375E'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003763'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>receiver the receiver to receive the event log entries.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003764'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003765'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the log service for the given log and outputs the log to the {@link LogReceiver}.
+@param logname the logname of the log to read from.
+@param receiver the receiver to receive the event log entries.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003760'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003761'
+ name = 'logname' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003762'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003766'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remotePort the remote port.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a port forwarding between a local and a remote port.
+@param localPort the local port to forward
+@param remotePort the remote port.
+@return <code>true</code> if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003768'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003769'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376A'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376E'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003773'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remotePort the remote port.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003774'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003775'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes a port forwarding between a local and a remote port.
+@param localPort the local port to forward
+@param remotePort the remote port.
+@return <code>true</code> if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003770'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003771'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003772'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003776'
+ name = 'getClientName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pid the pid of the client.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the client by pid or <code>null</code> if pid is unknown
+@param pid the pid of the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003778'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003779'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377C'
+ name = 'installPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003781'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>reinstall set to <code>true</code> if re-install of app should be performed
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003782'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link String} with an error code, or <code>null</code> if success.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003783'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if connection to device is list
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003784'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Installs an Android application on device.
+ This is a helper method that combines the syncPackageToDevice, installRemotePackage,
+ and removePackage steps
+
+@param packageFilePath the absolute file system path to file on local host to install
+@param reinstall set to <code>true</code> if re-install of app should be performed
+@return a {@link String} with an error code, or <code>null</code> if success.
+
+@throws IOException if connection to device is list</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377F'
+ name = 'packageFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003780'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003785'
+ name = 'syncPackageToDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003789'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>localFilePath the absolute path to file on local host
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link String} destination path on device for file
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if fatal error occurred when pushing file
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pushes a file to device
+@param localFilePath the absolute path to file on local host
+@return {@link String} destination path on device for file
+@throws IOException if fatal error occurred when pushing file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003787'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003788'
+ name = 'localFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378D'
+ name = 'installRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003792'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>reinstall set to <code>true</code> if re-install of app should be performed
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003793'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if device connection was lost
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003794'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Installs the application package that was pushed to a temporary location on the device.
+
+@param remoteFilePath absolute file path to package file on device
+@param reinstall set to <code>true</code> if re-install of app should be performed
+
+@throws IOException if device connection was lost</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003790'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003791'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003795'
+ name = 'removeRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003799'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remoteFilePath path on device of file to remove
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if file removal failed
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Remove a file from device
+@param remoteFilePath path on device of file to remove
+@throws IOException if file removal failed</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003797'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003798'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379C'
+ name = 'uninstallPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>packageName the Android application package name to uninstall
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link String} with an error code, or <code>null</code> if success.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Uninstall an package from the device.
+@param packageName the Android application package name to uninstall
+@return a {@link String} with an error code, or <code>null</code> if success.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379F'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'
+ name = 'Log' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Log class that mirrors the API in main Android sources.
+ <p/>Default behavior outputs the log to {@link System#out}. Use
+ {@link #setLogOutput(com.android.ddmlib.Log.ILogOutput)} to redirect the log somewhere else.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'
+ name = 'LogLevel' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Log Level enum.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDE'
+ name = 'VERBOSE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE3'
+ name = 'DEBUG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FE8'
+ name = 'INFO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C50'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C51'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FED'
+ name = 'WARN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C52'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C53'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF2'
+ name = 'ERROR' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C54'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C55'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FF7'
+ name = 'ASSERT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C56'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C57'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C58'
+ name = 'mPriorityLevel' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C5D'
+ name = 'mStringValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C60'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C61'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C62'
+ name = 'mPriorityLetter' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C65'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C66'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C67'
+ name = 'LogLevel' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C69'
+ name = 'intPriority' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6A'
+ name = 'stringValue' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6B'
+ name = 'priorityChar' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6C'
+ name = 'LogLevel' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6D'
+ language = 'Java' body = ' mPriorityLevel = intPriority; mStringValue = stringValue; mPriorityLetter = priorityChar; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C67'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6E'
+ name = 'getByString' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C70'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C71'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C72'
+ name = 'getByString' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C73'
+ language = 'Java' body = ' for (LogLevel mode : values()) { if (mode.mStringValue.equals(value)) { return mode; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C74'
+ name = 'getByLetter' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C78'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>letter the letter matching a <code>LogLevel</code> enum
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C79'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a <code>LogLevel</code> object or <code>null</code> if no match were found.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link LogLevel} enum matching the specified letter.
+@param letter the letter matching a <code>LogLevel</code> enum
+@return a <code>LogLevel</code> object or <code>null</code> if no match were found.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C76'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C77'
+ name = 'letter' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7B'
+ name = 'getByLetter' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7C'
+ language = 'Java' body = ' for (LogLevel mode : values()) { if (mode.mPriorityLetter == letter) { return mode; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C74'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7D'
+ name = 'getByLetterString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C81'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>letter the letter matching a <code>LogLevel</code> enum
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C82'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a <code>LogLevel</code> object or <code>null</code> if no match were found.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C83'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link LogLevel} enum matching the specified letter.
+ <p/>
+ The letter is passed as a {@link String} argument, but only the first character
+ is used.
+@param letter the letter matching a <code>LogLevel</code> enum
+@return a <code>LogLevel</code> object or <code>null</code> if no match were found.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C80'
+ name = 'letter' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C84'
+ name = 'getByLetterString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C85'
+ language = 'Java' body = ' if (letter.length() > 0) { return getByLetter(letter.charAt(0)); } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C86'
+ name = 'getPriorityLetter' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C89'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the letter identifying the priority of the {@link LogLevel}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8A'
+ name = 'getPriorityLetter' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8B'
+ language = 'Java' body = ' return mPriorityLetter; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C86'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8C'
+ name = 'getPriority' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the numerical value of the priority.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C90'
+ name = 'getPriority' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C91'
+ language = 'Java' body = ' return mPriorityLevel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C92'
+ name = 'getStringValue' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C95'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a non translated string representing the LogLevel.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C94'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C96'
+ name = 'getStringValue' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C97'
+ language = 'Java' body = ' return mStringValue; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C92'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFC'
+ name = 'ILogOutput' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provides methods that deal with outputting log
+ messages.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C99'
+ name = 'printLog' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to display.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a log message needs to be printed.
+@param logLevel The {@link LogLevel} enum representing the priority of the message.
+@param tag The tag associated with the message.
+@param message The message to display.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9C'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9D'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9E'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA1'
+ name = 'printAndPromptLog' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to display.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a log message needs to be printed, and, if possible, displayed to the user
+ in a dialog box.
+@param logLevel The {@link LogLevel} enum representing the priority of the message.
+@param tag The tag associated with the message.
+@param message The message to display.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA4'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA5'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA6'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFE'
+ name = 'Config' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC2'
+ name = 'LOGV' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC7'
+ language = 'Java' body = ' true'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC8'
+ name = 'LOGD' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCD'
+ language = 'Java' body = ' true'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA9'
+ name = 'mLevel' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAE'
+ language = 'Java' body = ' DdmPreferences.getLogLevel()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CAF'
+ name = 'sLogOutput' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFC'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB5'
+ name = 'mSpaceLine' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBA'
+ language = 'Java' body = ' new char[72]'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB4'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBB'
+ name = 'mHexDigit' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CBF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC0'
+ language = 'Java' body = ' new char[] { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB4'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCE'
+ name = 'Log' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD0'
+ name = 'Log' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD1'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD2'
+ name = 'v' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#VERBOSE} level message.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD5'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD6'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD9'
+ name = 'v' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDA'
+ language = 'Java' body = ' println(LogLevel.VERBOSE, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDB'
+ name = 'd' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#DEBUG} level message.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDE'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDF'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE2'
+ name = 'd' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE3'
+ language = 'Java' body = ' println(LogLevel.DEBUG, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE4'
+ name = 'i' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CEA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#INFO} level message.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE7'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE8'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CEB'
+ name = 'i' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CEC'
+ language = 'Java' body = ' println(LogLevel.INFO, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CED'
+ name = 'w' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#WARN} level message.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CEF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF0'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF1'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF4'
+ name = 'w' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF5'
+ language = 'Java' body = ' println(LogLevel.WARN, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF6'
+ name = 'e' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#ERROR} level message.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF9'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFA'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFD'
+ name = 'e' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFE'
+ language = 'Java' body = ' println(LogLevel.ERROR, tag, message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFF'
+ name = 'logAndDisplay' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D05'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The message to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D06'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a log message and attempts to display it in a dialog.
+@param tag The tag associated with the message.
+@param message The message to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D01'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D02'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D03'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D04'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D07'
+ name = 'logAndDisplay' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D08'
+ language = 'Java' body = ' if (sLogOutput != null) { sLogOutput.printAndPromptLog(logLevel, tag, message); } else { println(logLevel, tag, message); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CFF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D09'
+ name = 'e' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>throwable The {@link Throwable} to output.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D10'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Outputs a {@link LogLevel#ERROR} level {@link Throwable} information.
+@param tag The tag associated with the message.
+@param throwable The {@link Throwable} to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0C'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0E'
+ name = 'throwable' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D11'
+ name = 'e' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D12'
+ language = 'Java' body = ' if (throwable != null) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); throwable.printStackTrace(pw); println(LogLevel.ERROR, tag, throwable.getMessage() + '\n' + sw.toString()); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D09'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D13'
+ name = 'setLevel' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D15'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D16'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D17'
+ name = 'setLevel' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D18'
+ language = 'Java' body = ' mLevel = logLevel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D13'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D19'
+ name = 'setLogOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>logOutput The {@link ILogOutput} to use to print the log.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the {@link ILogOutput} to use to print the logs. If not set, {@link System#out}
+ will be used.
+@param logOutput The {@link ILogOutput} to use to print the log.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1C'
+ name = 'logOutput' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1F'
+ name = 'setLogOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D20'
+ language = 'Java' body = ' sLogOutput = logOutput; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D19'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D21'
+ name = 'hexDump' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D29'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Show hex dump.
+ <p/>
+ Local addition. Output looks like:
+ 1230- 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 0123456789abcdef
+ <p/>
+ Uses no string concatenation; creates one String object per line.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D24'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D25'
+ name = 'level' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D26'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D27'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D28'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2A'
+ name = 'hexDump' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2B'
+ language = 'Java' body = ' int kHexOffset = 6; int kAscOffset = 55; char[] line = new char[mSpaceLine.length]; int addr, baseAddr, count; int i, ch; boolean needErase = true; //Log.w(tag, "HEX DUMP: off=" + offset + ", length=" + length); baseAddr = 0; while (length != 0) { if (length > 16) { // full line count = 16; } else { // partial line; re-copy blanks to clear end count = length; needErase = true; } if (needErase) { System.arraycopy(mSpaceLine, 0, line, 0, mSpaceLine.length); needErase = false; } // output the address (currently limited to 4 hex digits) addr = baseAddr; addr &= 0xffff; ch = 3; while (addr != 0) { line[ch] = mHexDigit[addr & 0x0f]; ch--; addr >>>= 4; } // output hex digits and ASCII chars ch = kHexOffset; for (i = 0; i < count; i++) { byte val = data[offset + i]; line[ch++] = mHexDigit[(val >>> 4) & 0x0f]; line[ch++] = mHexDigit[val & 0x0f]; ch++; if (val >= 0x20 && val < 0x7f) line[kAscOffset + i] = (char) val; else line[kAscOffset + i] = '.'; } println(level, tag, new String(line)); // advance to next chunk of data length -= count; offset += count; baseAddr += count; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D21'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2C'
+ name = 'hexDump' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D30'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Dump the entire contents of a byte array with DEBUG priority.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2F'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D31'
+ name = 'hexDump' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D32'
+ language = 'Java' body = ' hexDump("ddms", LogLevel.DEBUG, data, 0, data.length); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D33'
+ name = 'println' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D35'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D36'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D37'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D38'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D39'
+ name = 'println' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3A'
+ language = 'Java' body = ' if (logLevel.getPriority() >= mLevel.getPriority()) { if (sLogOutput != null) { sLogOutput.printLog(logLevel, tag, message); } else { printLog(logLevel, tag, message); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D33'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3B'
+ name = 'printLog' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D41'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D42'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Prints a log message.
+@param logLevel
+@param tag
+@param message</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3E'
+ name = 'logLevel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3F'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D40'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D43'
+ name = 'printLog' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D44'
+ language = 'Java' body = ' long msec; msec = System.currentTimeMillis(); String outMessage = String.format("%02d:%02d %c/%s: %s\n", (msec / 60000) % 60, (msec / 1000) % 60, logLevel.getPriorityLetter(), tag, message); System.out.print(outMessage); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA7'
+ name = 'testrunner' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'
+ name = 'IRemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ interface for running a Android test command remotely and reporting result to a listener</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004329'
+ name = 'getPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the application package name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432D'
+ name = 'getRunnerName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004330'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the runnerName.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004331'
+ name = 'setClassName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004335'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>className fully qualified class name (eg x.y.z)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004336'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets to run only tests in this class
+ Must be called before 'run'.
+
+@param className fully qualified class name (eg x.y.z)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004333'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004334'
+ name = 'className' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004337'
+ name = 'setClassNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>classNames array of fully qualified class names (eg x.y.z)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets to run only tests in the provided classes
+ Must be called before 'run'.
+ <p>
+ If providing more than one class, requires a InstrumentationTestRunner that supports
+ the multiple class argument syntax.
+
+@param classNames array of fully qualified class names (eg x.y.z)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004339'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433A'
+ name = 'classNames' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433D'
+ name = 'setMethodName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004342'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>testName method name
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004343'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets to run only specified test method
+ Must be called before 'run'.
+
+@param className fully qualified class name (eg x.y.z)
+@param testName method name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004340'
+ name = 'className' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004341'
+ name = 'testName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004344'
+ name = 'setTestPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004348'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>packageName fully qualified package name (eg x.y.z)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004349'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets to run all tests in specified package
+ Must be called before 'run'.
+
+@param packageName fully qualified package name (eg x.y.z)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004346'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004347'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434A'
+ name = 'addInstrumentationArg' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the value of the argument
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004350'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a argument to include in instrumentation command.
+ <p/>
+ Must be called before 'run'. If an argument with given name has already been provided, it's
+ value will be overridden.
+
+@param name the name of the instrumentation bundle argument
+@param value the value of the argument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434D'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434E'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004351'
+ name = 'addBooleanArg' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004356'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>RemoteAndroidTestRunner#addInstrumentationArg
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004357'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the value of the argument
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004358'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a boolean argument to include in instrumentation command.
+ <p/>
+@see RemoteAndroidTestRunner#addInstrumentationArg
+
+@param name the name of the instrumentation bundle argument
+@param value the value of the argument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004353'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004354'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004355'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004359'
+ name = 'setLogOnly' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets this test run to log only mode - skips test execution.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435C'
+ name = 'logOnly' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435E'
+ name = 'setDebug' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004362'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets this debug mode of this test run. If true, the Android test runner will wait for a
+ debugger to attach before proceeding with test execution.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004360'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004361'
+ name = 'debug' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004363'
+ name = 'setCoverage' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004367'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets this code coverage mode of this test run.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004365'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004366'
+ name = 'coverage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004368'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener listens for test results
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Execute this test run.
+
+@param listener listens for test results</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436B'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436E'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004371'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Requests cancellation of this test run.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004370'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'
+ name = 'ITestRunListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Receives event notifications during instrumentation test runs.
+ Patterned after {@link junit.runner.TestRunListener}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D2'
+ name = 'TestFailure' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Types of test failures.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D4'
+ name = 'ERROR' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000421E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000421F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D9'
+ name = 'FAILURE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004220'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004221'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004222'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004226'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>testCount total number of tests in test run
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004227'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the start of a test run.
+
+@param testCount total number of tests in test run</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004224'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004225'
+ name = 'testCount' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004228'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>elapsedTime device reported elapsed time, in milliseconds
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports end of test run.
+
+@param elapsedTime device reported elapsed time, in milliseconds</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422B'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422E'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004232'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>elapsedTime device reported elapsed time, in milliseconds
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004233'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports test run stopped before completion.
+
+@param elapsedTime device reported elapsed time, in milliseconds</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004230'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004231'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004234'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004238'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>test identifies the test
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004239'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the start of an individual test case.
+
+@param test identifies the test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004236'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004237'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423A'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>test identifies the test
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the execution end of an individual test case.
+ If {@link #testFailed} was not invoked, this test passed.
+
+@param test identifies the test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423D'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004240'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004246'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>trace stack trace of failure
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004247'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the failure of a individual test case.
+ Will be called between testStarted and testEnded.
+
+@param status failure type
+@param test identifies the test
+@param trace stack trace of failure</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004242'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004243'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004244'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004245'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004248'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports test run failed to execute due to a fatal error.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424B'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAC'
+ name = 'RemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004258'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs a Android test command remotely and reports results.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004259'
+ name = 'mPackageName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000425E'
+ name = 'mRunnerName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004261'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004262'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004263'
+ name = 'mRemoteDevice' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004266'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004267'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004268'
+ name = 'mArgMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> map of name-value instrumentation argument pairs *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000426E'
+ name = 'mParser' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004271'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004272'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004273'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004276'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004277'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004278'
+ language = 'Java' body = ' "RemoteAndroidTest"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004279'
+ name = 'DEFAULT_RUNNER_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427E'
+ language = 'Java' body = ' "android.test.InstrumentationTestRunner"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000427F'
+ name = 'CLASS_SEPARATOR' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004282'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004283'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004284'
+ language = 'Java' body = ' ',''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004285'
+ name = 'METHOD_SEPARATOR' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004288'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004289'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428A'
+ language = 'Java' body = ' '#''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428B'
+ name = 'RUNNER_SEPARATOR' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000428F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004290'
+ language = 'Java' body = ' '/''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000871'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004291'
+ name = 'CLASS_ARG_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004294'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004295'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004296'
+ language = 'Java' body = ' "class"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004297'
+ name = 'LOG_ARG_NAME' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429C'
+ language = 'Java' body = ' "log"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000429D'
+ name = 'DEBUG_ARG_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A2'
+ language = 'Java' body = ' "debug"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A3'
+ name = 'COVERAGE_ARG_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A8'
+ language = 'Java' body = ' "coverage"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042A9'
+ name = 'PACKAGE_ARG_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AE'
+ language = 'Java' body = ' "package"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AF'
+ name = 'RemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remoteDevice the Android device to execute tests on
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a remote Android test runner.
+
+@param packageName the Android application package that contains the tests to run
+@param runnerName the instrumentation test runner to execute. If null, will use default
+ runner
+@param remoteDevice the Android device to execute tests on</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B1'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B2'
+ name = 'runnerName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B3'
+ name = 'remoteDevice' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B6'
+ name = 'RemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B7'
+ language = 'Java' body = ' mPackageName = packageName; mRunnerName = runnerName; mRemoteDevice = remoteDevice; mArgMap = new Hashtable<String, String>(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042AF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B8'
+ name = 'RemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remoteDevice the Android device to execute tests on
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Alternate constructor. Uses default instrumentation runner.
+
+@param packageName the Android application package that contains the tests to run
+@param remoteDevice the Android device to execute tests on</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BA'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BB'
+ name = 'remoteDevice' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BE'
+ name = 'RemoteAndroidTestRunner' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042BF'
+ language = 'Java' body = ' this(packageName, null, remoteDevice); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C0'
+ name = 'getPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C4'
+ name = 'getPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C5'
+ language = 'Java' body = ' return mPackageName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C6'
+ name = 'getRunnerName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CA'
+ name = 'getRunnerName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CB'
+ language = 'Java' body = ' if (mRunnerName == null) { return DEFAULT_RUNNER_NAME; } return mRunnerName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CC'
+ name = 'getRunnerPath' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the complete instrumentation component path.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D0'
+ name = 'getRunnerPath' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D1'
+ language = 'Java' body = ' return getPackageName() + RUNNER_SEPARATOR + getRunnerName(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D2'
+ name = 'setClassName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D5'
+ name = 'className' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D7'
+ name = 'setClassName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D8'
+ language = 'Java' body = ' addInstrumentationArg(CLASS_ARG_NAME, className); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D9'
+ name = 'setClassNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DC'
+ name = 'classNames' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DE'
+ name = 'setClassNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DF'
+ language = 'Java' body = ' StringBuilder classArgBuilder = new StringBuilder(); for (int i = 0; i < classNames.length; i++) { if (i != 0) { classArgBuilder.append(CLASS_SEPARATOR); } classArgBuilder.append(classNames[i]); } setClassName(classArgBuilder.toString()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E0'
+ name = 'setMethodName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E3'
+ name = 'className' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E4'
+ name = 'testName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E6'
+ name = 'setMethodName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E7'
+ language = 'Java' body = ' setClassName(className + METHOD_SEPARATOR + testName); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E8'
+ name = 'setTestPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EB'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042ED'
+ name = 'setTestPackageName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EE'
+ language = 'Java' body = ' addInstrumentationArg(PACKAGE_ARG_NAME, packageName); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EF'
+ name = 'addInstrumentationArg' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F2'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F3'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F5'
+ name = 'addInstrumentationArg' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F6'
+ language = 'Java' body = ' if (name == null || value == null) { throw new IllegalArgumentException("name or value arguments cannot be null"); } mArgMap.put(name, value); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F7'
+ name = 'addBooleanArg' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FA'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FB'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FD'
+ name = 'addBooleanArg' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FE'
+ language = 'Java' body = ' addInstrumentationArg(name, Boolean.toString(value)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FF'
+ name = 'setLogOnly' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004303'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004301'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004302'
+ name = 'logOnly' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004304'
+ name = 'setLogOnly' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004305'
+ language = 'Java' body = ' addBooleanArg(LOG_ARG_NAME, logOnly); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042FF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004306'
+ name = 'setDebug' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004308'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004309'
+ name = 'debug' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430B'
+ name = 'setDebug' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430C'
+ language = 'Java' body = ' addBooleanArg(DEBUG_ARG_NAME, debug); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004306'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430D'
+ name = 'setCoverage' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004311'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004310'
+ name = 'coverage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004312'
+ name = 'setCoverage' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004313'
+ language = 'Java' body = ' addBooleanArg(COVERAGE_ARG_NAME, coverage); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004314'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004318'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004316'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004317'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004319'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431A'
+ language = 'Java' body = ' final String runCaseCommandStr = String.format("am instrument -w -r %s %s", getArgsCommand(), getRunnerPath()); Log.d(LOG_TAG, runCaseCommandStr); mParser = new InstrumentationResultParser(listener); try { mRemoteDevice.executeShellCommand(runCaseCommandStr, mParser); } catch (IOException e) { Log.e(LOG_TAG, e); listener.testRunFailed(e.toString()); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004314'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431B'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431F'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004320'
+ language = 'Java' body = ' if (mParser != null) { mParser.cancel(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004321'
+ name = 'getArgsCommand' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004324'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the full instrumentation command line syntax for the provided instrumentation
+ arguments.
+ Returns an empty string if no arguments were specified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004323'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004325'
+ name = 'getArgsCommand' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004326'
+ language = 'Java' body = ' StringBuilder commandBuilder = new StringBuilder(); for (Entry<String, String> argPair : mArgMap.entrySet()) { final String argCmd = String.format(" -e %s %s", argPair.getKey(), argPair.getValue()); commandBuilder.append(argCmd); } return commandBuilder.toString(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004321'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'
+ name = 'TestIdentifier' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Identifies a parsed instrumentation test </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040AD'
+ name = 'mClassName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B2'
+ name = 'mTestName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B7'
+ name = 'TestIdentifier' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>testName name of the test. Cannot be null.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a test identifier
+
+@param className fully qualified class name of the test. Cannot be null.
+@param testName name of the test. Cannot be null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B9'
+ name = 'className' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BA'
+ name = 'testName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BD'
+ name = 'TestIdentifier' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BE'
+ language = 'Java' body = ' if (className == null || testName == null) { throw new IllegalArgumentException("className and testName must " + "be non-null"); } mClassName = className; mTestName = testName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BF'
+ name = 'getClassName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the fully qualified class name of the test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C3'
+ name = 'getClassName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C4'
+ language = 'Java' body = ' return mClassName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040BF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C5'
+ name = 'getTestName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the test</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C9'
+ name = 'getTestName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CA'
+ language = 'Java' body = ' return mTestName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CB'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tests equality by comparing class and method name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CE'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D0'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D1'
+ language = 'Java' body = ' if (!(other instanceof TestIdentifier)) { return false; } TestIdentifier otherTest = (TestIdentifier)other; return getClassName().equals(otherTest.getClassName()) && getTestName().equals(otherTest.getTestName()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D2'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Generates hashCode based on class and method name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D6'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D7'
+ language = 'Java' body = ' return getClassName().hashCode() * 31 + getTestName().hashCode(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000105A'
+ name = 'TestFailure' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BE'
+ name = 'TestIdentifier.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C0'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C2'
+ name = 'InstrumentationResultParser.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DB'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D9'
+ name = 'InstrumentationResultParser.java -> IShellOutputReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C2'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DA'
+ name = 'InstrumentationResultParser.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C2'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DB'
+ name = 'InstrumentationResultParser.java -> MultiLineReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C2'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C4'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C3'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C3'
+ name = 'InstrumentationResultParser' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses the 'raw output mode' results of an instrumentation test run from shell and informs a
+ ITestRunListener of the results.
+
+ <p>Expects the following output:
+
+ <p>If fatal error occurred when attempted to run the tests:
+ <pre>
+ INSTRUMENTATION_STATUS: Error=error Message
+ INSTRUMENTATION_FAILED:
+ </pre>
+ <p>or
+ <pre>
+ INSTRUMENTATION_RESULT: shortMsg=error Message
+ </pre>
+
+ <p>Otherwise, expect a series of test results, each one containing a set of status key/value
+ pairs, delimited by a start(1)/pass(0)/fail(-2)/error(-1) status code result. At end of test
+ run, expects that the elapsed test time in seconds will be displayed
+
+ <p>For example:
+ <pre>
+ INSTRUMENTATION_STATUS_CODE: 1
+ INSTRUMENTATION_STATUS: class=com.foo.FooTest
+ INSTRUMENTATION_STATUS: test=testFoo
+ INSTRUMENTATION_STATUS: numtests=2
+ INSTRUMENTATION_STATUS: stack=com.foo.FooTest#testFoo:312
+ com.foo.X
+ INSTRUMENTATION_STATUS_CODE: -2
+ ...
+
+ Time: X
+ </pre>
+ <p>Note that the "value" portion of the key-value pair may wrap over several text lines</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DD'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C6'
+ name = 'StatusKeys' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Relevant test status keys. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DF'
+ name = 'TEST' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E4'
+ language = 'Java' body = ' "test"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E5'
+ name = 'CLASS' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040E9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040EA'
+ language = 'Java' body = ' "class"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040EB'
+ name = 'STACK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040EE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040EF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F0'
+ language = 'Java' body = ' "stack"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F1'
+ name = 'NUMTESTS' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F6'
+ language = 'Java' body = ' "numtests"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040F7'
+ name = 'ERROR' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FC'
+ language = 'Java' body = ' "Error"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040FD'
+ name = 'SHORTMSG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004100'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004101'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004102'
+ language = 'Java' body = ' "shortMsg"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C8'
+ name = 'StatusCodes' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Test result status codes. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004104'
+ name = 'FAILURE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004107'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004108'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004109'
+ language = 'Java' body = ' -2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410A'
+ name = 'START' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000410F'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004110'
+ name = 'ERROR' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004113'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004114'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004115'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004116'
+ name = 'OK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004119'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411B'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CA'
+ name = 'Prefixes' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Prefixes used to identify output. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411D'
+ name = 'STATUS' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004120'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004121'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004122'
+ language = 'Java' body = ' "INSTRUMENTATION_STATUS: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004123'
+ name = 'STATUS_CODE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004126'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004127'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004128'
+ language = 'Java' body = ' "INSTRUMENTATION_STATUS_CODE: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004129'
+ name = 'STATUS_FAILED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412E'
+ language = 'Java' body = ' "INSTRUMENTATION_FAILED: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000412F'
+ name = 'CODE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004132'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004133'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004134'
+ language = 'Java' body = ' "INSTRUMENTATION_CODE: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004135'
+ name = 'RESULT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004138'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004139'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413A'
+ language = 'Java' body = ' "INSTRUMENTATION_RESULT: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413B'
+ name = 'TIME_REPORT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000413F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004140'
+ language = 'Java' body = ' "Time: "'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'
+ name = 'TestResult' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test result data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004147'
+ name = 'mCode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414C'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000855'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000414D'
+ name = 'mTestName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004150'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004151'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004152'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004153'
+ name = 'mTestClass' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004156'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004157'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004158'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004159'
+ name = 'mStackTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415E'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000415F'
+ name = 'mNumTests' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004162'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004163'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004164'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000855'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004165'
+ name = 'isComplete' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004168'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Returns true if all expected values have been parsed *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004167'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004169'
+ name = 'isComplete' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416A'
+ language = 'Java' body = ' return mCode != null && mTestName != null && mTestClass != null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004165'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416B'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Provides a more user readable string for TestResult, if possible *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416F'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004170'
+ language = 'Java' body = ' StringBuilder output = new StringBuilder(); if (mTestClass != null ) { output.append(mTestClass); output.append('#'); } if (mTestName != null) { output.append(mTestName); } if (output.length() > 0) { return output.toString(); } return "unknown result"; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004141'
+ name = 'mTestListener' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004144'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004145'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004171'
+ name = 'mCurrentTestResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004174'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004175'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004176'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004177'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Stores the status values for the test result currently being parsed *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004178'
+ name = 'mCurrentKey' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417D'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Stores the current "key" portion of the status key-value being parsed. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004180'
+ name = 'mCurrentValue' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004183'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004184'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004185'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004186'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Stores the current "value" portion of the status key-value being parsed. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004187'
+ name = 'mTestStartReported' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418C'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> True if start of test has already been reported to listener. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000418E'
+ name = 'mTestTime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004191'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004192'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004193'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004194'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The elapsed time of the test run, in milliseconds. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004195'
+ name = 'mIsCancelled' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004198'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004199'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419A'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> True if current test run has been canceled by user. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419C'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000419F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A1'
+ language = 'Java' body = ' "InstrumentationResultParser"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A2'
+ name = 'InstrumentationResultParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener informed of test results as the tests are executing
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates the InstrumentationResultParser.
+
+@param listener informed of test results as the tests are executing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A4'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A7'
+ name = 'InstrumentationResultParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A8'
+ language = 'Java' body = ' mTestListener = listener; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A9'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>MultiLineReceiver#processNewLines
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Processes the instrumentation test output from shell.
+
+@see MultiLineReceiver#processNewLines</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AC'
+ name = 'lines' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AF'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B0'
+ language = 'Java' body = ' for (String line : lines) { parse(line); // in verbose mode, dump all adb output to log Log.v(LOG_TAG, line); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B1'
+ name = 'parse' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>line Text output line
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parse an individual output line. Expects a line that is one of:
+ <ul>
+ <li>
+ The start of a new status line (starts with Prefixes.STATUS or Prefixes.STATUS_CODE),
+ and thus there is a new key=value pair to parse, and the previous key-value pair is
+ finished.
+ </li>
+ <li>
+ A continuation of the previous status (the "value" portion of the key has wrapped
+ to the next line).
+ </li>
+ <li> A line reporting a fatal error in the test run (Prefixes.STATUS_FAILED) </li>
+ <li> A line reporting the total elapsed time of the test run. (Prefixes.TIME_REPORT) </li>
+ </ul>
+
+@param line Text output line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B4'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B7'
+ name = 'parse' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B8'
+ language = 'Java' body = ' if (line.startsWith(Prefixes.STATUS_CODE)) { // Previous status key-value has been collected. Store it. submitCurrentKeyValue(); parseStatusCode(line); } else if (line.startsWith(Prefixes.STATUS)) { // Previous status key-value has been collected. Store it. submitCurrentKeyValue(); parseKey(line, Prefixes.STATUS.length()); } else if (line.startsWith(Prefixes.RESULT)) { // Previous status key-value has been collected. Store it. submitCurrentKeyValue(); parseKey(line, Prefixes.RESULT.length()); } else if (line.startsWith(Prefixes.STATUS_FAILED) || line.startsWith(Prefixes.CODE)) { // Previous status key-value has been collected. Store it. submitCurrentKeyValue(); // just ignore the remaining data on this line } else if (line.startsWith(Prefixes.TIME_REPORT)) { parseTime(line, Prefixes.TIME_REPORT.length()); } else { if (mCurrentValue != null) { // this is a value that has wrapped to next line. mCurrentValue.append("\r\n"); mCurrentValue.append(line); } else { Log.w(LOG_TAG, "unrecognized line " + line); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B9'
+ name = 'submitCurrentKeyValue' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Stores the currently parsed key-value pair into mCurrentTestInfo.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BD'
+ name = 'submitCurrentKeyValue' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BE'
+ language = 'Java' body = ' if (mCurrentKey != null && mCurrentValue != null) { TestResult testInfo = getCurrentTestInfo(); String statusValue = mCurrentValue.toString(); if (mCurrentKey.equals(StatusKeys.CLASS)) { testInfo.mTestClass = statusValue.trim(); } else if (mCurrentKey.equals(StatusKeys.TEST)) { testInfo.mTestName = statusValue.trim(); } else if (mCurrentKey.equals(StatusKeys.NUMTESTS)) { try { testInfo.mNumTests = Integer.parseInt(statusValue); } catch (NumberFormatException e) { Log.e(LOG_TAG, "Unexpected integer number of tests, received " + statusValue); } } else if (mCurrentKey.equals(StatusKeys.ERROR) || mCurrentKey.equals(StatusKeys.SHORTMSG)) { // test run must have failed handleTestRunFailed(statusValue); } else if (mCurrentKey.equals(StatusKeys.STACK)) { testInfo.mStackTrace = statusValue; } mCurrentKey = null; mCurrentValue = null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BF'
+ name = 'getCurrentTestInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C2'
+ name = 'getCurrentTestInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C3'
+ language = 'Java' body = ' if (mCurrentTestResult == null) { mCurrentTestResult = new TestResult(); } return mCurrentTestResult; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C4'
+ name = 'clearCurrentTestInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C7'
+ name = 'clearCurrentTestInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C8'
+ language = 'Java' body = ' mCurrentTestResult = null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C9'
+ name = 'parseKey' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>keyStartPos the starting position of the key in the given line
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses the key from the current line.
+ Expects format of "key=value".
+
+@param line full line of text to parse
+@param keyStartPos the starting position of the key in the given line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CC'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CD'
+ name = 'keyStartPos' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D0'
+ name = 'parseKey' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D1'
+ language = 'Java' body = ' int endKeyPos = line.indexOf('=', keyStartPos); if (endKeyPos != -1) { mCurrentKey = line.substring(keyStartPos, endKeyPos).trim(); parseValue(line, endKeyPos + 1); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D2'
+ name = 'parseValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueStartPos - the starting position of the value in the given line
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses the start of a key=value pair.
+
+@param line - full line of text to parse
+@param valueStartPos - the starting position of the value in the given line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D5'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D6'
+ name = 'valueStartPos' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D9'
+ name = 'parseValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DA'
+ language = 'Java' body = ' mCurrentValue = new StringBuilder(); mCurrentValue.append(line.substring(valueStartPos)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DB'
+ name = 'parseStatusCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses out a status code result.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DE'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E0'
+ name = 'parseStatusCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E1'
+ language = 'Java' body = ' String value = line.substring(Prefixes.STATUS_CODE.length()).trim(); TestResult testInfo = getCurrentTestInfo(); try { testInfo.mCode = Integer.parseInt(value); } catch (NumberFormatException e) { Log.e(LOG_TAG, "Expected integer status code, received: " + value); } // this means we're done with current test result bundle reportResult(testInfo); clearCurrentTestInfo(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E2'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IShellOutputReceiver#isCancelled()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if test run canceled.
+
+@see IShellOutputReceiver#isCancelled()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E7'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E8'
+ language = 'Java' body = ' return mIsCancelled; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E9'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Requests cancellation of test run.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041ED'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EE'
+ language = 'Java' body = ' mIsCancelled = true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EF'
+ name = 'reportResult' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>statusMap key-value status pairs of test result
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports a test result to the test run listener. Must be called when a individual test
+ result has been fully parsed.
+
+@param statusMap key-value status pairs of test result</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F2'
+ name = 'testInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F5'
+ name = 'reportResult' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F6'
+ language = 'Java' body = ' if (!testInfo.isComplete()) { Log.w(LOG_TAG, "invalid instrumentation status bundle " + testInfo.toString()); return; } reportTestRunStarted(testInfo); TestIdentifier testId = new TestIdentifier(testInfo.mTestClass, testInfo.mTestName); switch (testInfo.mCode) { case StatusCodes.START: mTestListener.testStarted(testId); break; case StatusCodes.FAILURE: mTestListener.testFailed(ITestRunListener.TestFailure.FAILURE, testId, getTrace(testInfo)); mTestListener.testEnded(testId); break; case StatusCodes.ERROR: mTestListener.testFailed(ITestRunListener.TestFailure.ERROR, testId, getTrace(testInfo)); mTestListener.testEnded(testId); break; case StatusCodes.OK: mTestListener.testEnded(testId); break; default: Log.e(LOG_TAG, "Unknown status code received: " + testInfo.mCode); mTestListener.testEnded(testId); break; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F7'
+ name = 'reportTestRunStarted' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>testInfo current test status values
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reports the start of a test run, and the total test count, if it has not been previously
+ reported.
+
+@param testInfo current test status values</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FA'
+ name = 'testInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FD'
+ name = 'reportTestRunStarted' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FE'
+ language = 'Java' body = ' // if start test run not reported yet if (!mTestStartReported && testInfo.mNumTests != null) { mTestListener.testRunStarted(testInfo.mNumTests); mTestStartReported = true; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FF'
+ name = 'getTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004203'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the stack trace of the current failed test, from the provided testInfo.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004201'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004202'
+ name = 'testInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004204'
+ name = 'getTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004205'
+ language = 'Java' body = ' if (testInfo.mStackTrace != null) { return testInfo.mStackTrace; } else { Log.e(LOG_TAG, "Could not find stack trace for failed test "); return new Throwable("Unknown failure").toString(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041FF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004206'
+ name = 'parseTime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses out and store the elapsed time.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004208'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004209'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420A'
+ name = 'startPos' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420C'
+ name = 'parseTime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420D'
+ language = 'Java' body = ' String timeString = line.substring(startPos); try { float timeSeconds = Float.parseFloat(timeString); mTestTime = (long) (timeSeconds * 1000); } catch (NumberFormatException e) { Log.e(LOG_TAG, "Unexpected time format " + timeString); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004206'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420E'
+ name = 'handleTestRunFailed' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004212'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Process a instrumentation run failure</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004210'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004211'
+ name = 'errorMsg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004213'
+ name = 'handleTestRunFailed' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004214'
+ language = 'Java' body = ' mTestListener.testRunFailed(errorMsg == null ? "Unknown error" : errorMsg); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004215'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004218'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called by parent when adb session is complete.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004217'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004219'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000421A'
+ language = 'Java' body = ' super.done(); mTestListener.testRunEnded(mTestTime); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004215'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CE'
+ name = 'ITestRunListener.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020D0'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'
+ name = 'RemoteAndroidTestRunner.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004250'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004252'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004254'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004256'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424E'
+ name = 'RemoteAndroidTestRunner.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000424F'
+ name = 'RemoteAndroidTestRunner.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004250'
+ name = 'RemoteAndroidTestRunner.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004252'
+ name = 'RemoteAndroidTestRunner.java -> Hashtable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004254'
+ name = 'RemoteAndroidTestRunner.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004256'
+ name = 'RemoteAndroidTestRunner.java -> Entry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004255'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E0'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAC'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E2'
+ name = 'IRemoteAndroidTestRunner.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E4'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'
+ name = 'RemoteAndroidTestRunnerTest.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004776'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004777'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004778'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004779'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004780'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004776'
+ name = 'RemoteAndroidTestRunnerTest.java -> Client' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004777'
+ name = 'RemoteAndroidTestRunnerTest.java -> FileListingService' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004778'
+ name = 'RemoteAndroidTestRunnerTest.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004779'
+ name = 'RemoteAndroidTestRunnerTest.java -> IShellOutputReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477A'
+ name = 'RemoteAndroidTestRunnerTest.java -> RawImage' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477B'
+ name = 'RemoteAndroidTestRunnerTest.java -> SyncService' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477C'
+ name = 'RemoteAndroidTestRunnerTest.java -> LogReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477D'
+ name = 'RemoteAndroidTestRunnerTest.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477F'
+ name = 'RemoteAndroidTestRunnerTest.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004780'
+ name = 'RemoteAndroidTestRunnerTest.java -> TestCase' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC4'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216F'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216E'
+ name = 'RemoteAndroidTestRunnerTest' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002170'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tests RemoteAndroidTestRunner.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004782'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002171'
+ name = 'MockDevice' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C8'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002172'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A dummy device that does nothing except store the provided executed shell command for
+ later retrieval.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C9'
+ name = 'mLastShellCommand' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CE'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Stores the provided command for later retrieval from getLastShellCommand.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D1'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D2'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D4'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D5'
+ language = 'Java' body = ' mLastShellCommand = command; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D6'
+ name = 'getLastShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the last command provided to executeShellCommand.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DA'
+ name = 'getLastShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DB'
+ language = 'Java' body = ' return mLastShellCommand; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DC'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DF'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E0'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E1'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E2'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E3'
+ name = 'getClient' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E6'
+ name = 'applicationName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E7'
+ name = 'getClient' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E8'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E9'
+ name = 'getClientName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EC'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047ED'
+ name = 'getClientName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EE'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EF'
+ name = 'getClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002352'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F2'
+ name = 'getClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F3'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F4'
+ name = 'getFileListingService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F7'
+ name = 'getFileListingService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F8'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F9'
+ name = 'getProperties' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FC'
+ name = 'getProperties' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FD'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FE'
+ name = 'getProperty' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004800'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004801'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004802'
+ name = 'getProperty' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004803'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004804'
+ name = 'getPropertyCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004806'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004807'
+ name = 'getPropertyCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004808'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004804'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004809'
+ name = 'getScreenshot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480C'
+ name = 'getScreenshot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480D'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004809'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480E'
+ name = 'getSerialNumber' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004810'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004811'
+ name = 'getSerialNumber' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004812'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004813'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004815'
+ name = 'return' isSpecification = 'false' kind = 'return'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004816'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004817'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004813'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004818'
+ name = 'getSyncService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481B'
+ name = 'getSyncService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481C'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004818'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481D'
+ name = 'hasClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004820'
+ name = 'hasClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004821'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004822'
+ name = 'isBootLoader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004824'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004825'
+ name = 'isBootLoader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004826'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004822'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004827'
+ name = 'isEmulator' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004829'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482A'
+ name = 'isEmulator' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482B'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004827'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482C'
+ name = 'isOffline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482F'
+ name = 'isOffline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004830'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004831'
+ name = 'isOnline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004833'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004834'
+ name = 'isOnline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004835'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004831'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004836'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004838'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004839'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483A'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483B'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483C'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004836'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483D'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004840'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004841'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004842'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004843'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004845'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004846'
+ name = 'logname' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004847'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004848'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004849'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004843'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484A'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484D'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484E'
+ language = 'Java' body = ' return ""; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484F'
+ name = 'installPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004851'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004852'
+ name = 'packageFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004853'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004854'
+ name = 'installPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004855'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004856'
+ name = 'uninstallPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004858'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004859'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485A'
+ name = 'uninstallPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485B'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004856'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485C'
+ name = 'installRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485F'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004860'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004861'
+ name = 'installRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004862'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004863'
+ name = 'removeRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004865'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004866'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004867'
+ name = 'removeRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004868'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004863'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004869'
+ name = 'syncPackageToDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486C'
+ name = 'localFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486D'
+ name = 'syncPackageToDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486E'
+ language = 'Java' body = ' throw new UnsupportedOperationException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004869'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002173'
+ name = 'EmptyListener' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004870'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002174'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ An empty implementation of ITestRunListener.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004871'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004873'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004874'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004875'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004876'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004871'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004877'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004879'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487A'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000105A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487B'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487C'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487D'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487E'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004877'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487F'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004881'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004882'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004883'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004884'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000487F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004885'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004887'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004888'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004889'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488A'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004885'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488B'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488E'
+ name = 'testCount' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488F'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004890'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004891'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004893'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004894'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004895'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004896'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004891'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004897'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004899'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489A'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489B'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489C'
+ language = 'Java' body = ' // ignore '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004897'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004783'
+ name = 'mRunner' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004786'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004787'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004788'
+ name = 'mMockDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002171'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000478D'
+ name = 'TEST_PACKAGE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004790'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004791'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004792'
+ language = 'Java' body = ' "com.test"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004793'
+ name = 'TEST_RUNNER' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004796'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004797'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004798'
+ language = 'Java' body = ' "com.test.InstrumentationTestRunner"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004799'
+ name = 'setUp' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>junit.framework.TestCase#setUp()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@see junit.framework.TestCase#setUp()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479E'
+ name = 'setUp' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479F'
+ language = 'Java' body = ' mMockDevice = new MockDevice(); mRunner = new RemoteAndroidTestRunner(TEST_PACKAGE, TEST_RUNNER, mMockDevice); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004799'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A0'
+ name = 'testRun' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test the basic case building of the instrumentation runner command with no arguments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A4'
+ name = 'testRun' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A5'
+ language = 'Java' body = ' mRunner.run(new EmptyListener()); assertStringsEquals(String.format("am instrument -w -r %s/%s", TEST_PACKAGE, TEST_RUNNER), mMockDevice.getLastShellCommand()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A6'
+ name = 'testRunWithLog' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test the building of the instrumentation runner command with log set.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AA'
+ name = 'testRunWithLog' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AB'
+ language = 'Java' body = ' mRunner.setLogOnly(true); mRunner.run(new EmptyListener()); assertStringsEquals(String.format("am instrument -w -r -e log true %s/%s", TEST_PACKAGE, TEST_RUNNER), mMockDevice.getLastShellCommand()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AC'
+ name = 'testRunWithMethod' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test the building of the instrumentation runner command with method set.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B0'
+ name = 'testRunWithMethod' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B1'
+ language = 'Java' body = ' final String className = "FooTest"; final String testName = "fooTest"; mRunner.setMethodName(className, testName); mRunner.run(new EmptyListener()); assertStringsEquals(String.format("am instrument -w -r -e class %s#%s %s/%s", className, testName, TEST_PACKAGE, TEST_RUNNER), mMockDevice.getLastShellCommand()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B2'
+ name = 'testRunWithPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test the building of the instrumentation runner command with test package set.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B6'
+ name = 'testRunWithPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B7'
+ language = 'Java' body = ' final String packageName = "foo.test"; mRunner.setTestPackageName(packageName); mRunner.run(new EmptyListener()); assertStringsEquals(String.format("am instrument -w -r -e package %s %s/%s", packageName, TEST_PACKAGE, TEST_RUNNER), mMockDevice.getLastShellCommand()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B8'
+ name = 'testRunWithAddInstrumentationArg' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test the building of the instrumentation runner command with extra argument added.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BC'
+ name = 'testRunWithAddInstrumentationArg' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BD'
+ language = 'Java' body = ' final String extraArgName = "blah"; final String extraArgValue = "blahValue"; mRunner.addInstrumentationArg(extraArgName, extraArgValue); mRunner.run(new EmptyListener()); assertStringsEquals(String.format("am instrument -w -r -e %s %s %s/%s", extraArgName, extraArgValue, TEST_PACKAGE, TEST_RUNNER), mMockDevice.getLastShellCommand()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BE'
+ name = 'assertStringsEquals' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Assert two strings are equal ignoring whitespace.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C1'
+ name = 'str1' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C2'
+ name = 'str2' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C4'
+ name = 'assertStringsEquals' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C5'
+ language = 'Java' body = ' String strippedStr1 = str1.replaceAll(" ", ""); String strippedStr2 = str2.replaceAll(" ", ""); assertEquals(strippedStr1, strippedStr2); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002175'
+ name = 'InstrumentationResultParserTest.java' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489E'
+ name = 'InstrumentationResultParserTest.java -> TestCase' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002175'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC4'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002177'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002176'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002176'
+ name = 'InstrumentationResultParserTest' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002178'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tests InstrumentationResultParser.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A0'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002179'
+ name = 'VerifyingTestResult' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004943'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A specialized test listener that stores a single test events.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004944'
+ name = 'mSuiteName' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004947'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004948'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004949'
+ name = 'mTestCount' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000494E'
+ name = 'mNumTestsRun' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004951'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004952'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004953'
+ name = 'mTestName' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004956'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004957'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004958'
+ name = 'mTestTime' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000495D'
+ name = 'mTestStatus' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004960'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004961'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000105A'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004962'
+ name = 'mTrace' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004965'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004966'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004967'
+ name = 'mStopped' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496C'
+ name = 'mRunFailedMessage' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000496F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004970'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004971'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> stores the error message provided to testRunFailed *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004972'
+ name = 'VerifyingTestResult' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004974'
+ name = 'VerifyingTestResult' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004975'
+ language = 'Java' body = ' mNumTestsRun = 0; mTestStatus = null; mStopped = false; mRunFailedMessage = null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004972'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004976'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004978'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004979'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497A'
+ name = 'testEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497B'
+ language = 'Java' body = ' mNumTestsRun++; assertEquals("Unexpected class name", mSuiteName, test.getClassName()); assertEquals("Unexpected test ended", mTestName, test.getTestName()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004976'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497C'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497F'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000105A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004980'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004981'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004982'
+ name = 'testFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004983'
+ language = 'Java' body = ' mTestStatus = status; mTrace = trace; assertEquals("Unexpected class name", mSuiteName, test.getClassName()); assertEquals("Unexpected test ended", mTestName, test.getTestName()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004984'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004986'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004987'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004988'
+ name = 'testRunEnded' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004989'
+ language = 'Java' body = ' mTestTime = elapsedTime; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004984'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498A'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498D'
+ name = 'testCount' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498E'
+ name = 'testRunStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498F'
+ language = 'Java' body = ' mTestCount = testCount; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004990'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004992'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004993'
+ name = 'elapsedTime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004994'
+ name = 'testRunStopped' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004995'
+ language = 'Java' body = ' mTestTime = elapsedTime; mStopped = true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004990'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004996'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004998'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004999'
+ name = 'test' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499A'
+ name = 'testStarted' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499B'
+ language = 'Java' body = ' mSuiteName = test.getClassName(); mTestName = test.getTestName(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004996'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499C'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499F'
+ name = 'errorMessage' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000049A0'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000049A1'
+ language = 'Java' body = ' mRunFailedMessage = errorMessage; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A1'
+ name = 'mParser' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A6'
+ name = 'mTestResult' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002179'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AB'
+ name = 'CLASS_NAME' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B0'
+ language = 'Java' body = ' "com.test.FooTest"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B1'
+ name = 'TEST_NAME' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B6'
+ language = 'Java' body = ' "testFoo"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048B7'
+ name = 'STACK_TRACE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BC'
+ language = 'Java' body = ' "java.lang.AssertionFailedException"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BD'
+ name = 'InstrumentationResultParserTest' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name - test name
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param name - test name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BF'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C2'
+ name = 'InstrumentationResultParserTest' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C3'
+ language = 'Java' body = ' super(name); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C4'
+ name = 'setUp' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>junit.framework.TestCase#setUp()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@see junit.framework.TestCase#setUp()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C9'
+ name = 'setUp' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CA'
+ language = 'Java' body = ' super.setUp(); mTestResult = new VerifyingTestResult(); mParser = new InstrumentationResultParser(mTestResult); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CB'
+ name = 'testTestStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tests that the test run started and test start events is sent on first
+ bundle received.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CF'
+ name = 'testTestStarted' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D0'
+ language = 'Java' body = ' StringBuilder output = buildCommonResult(); addStartCode(output); injectTestString(output.toString()); assertCommonAttributes(); assertEquals(0, mTestResult.mNumTestsRun); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D1'
+ name = 'testTestSuccess' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tests that a single successful test execution.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D5'
+ name = 'testTestSuccess' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D6'
+ language = 'Java' body = ' StringBuilder output = buildCommonResult(); addStartCode(output); addCommonStatus(output); addSuccessCode(output); injectTestString(output.toString()); assertCommonAttributes(); assertEquals(1, mTestResult.mNumTestsRun); assertEquals(null, mTestResult.mTestStatus); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D7'
+ name = 'testTestFailed' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test basic parsing of failed test case.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DB'
+ name = 'testTestFailed' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DC'
+ language = 'Java' body = ' StringBuilder output = buildCommonResult(); addStartCode(output); addCommonStatus(output); addStackTrace(output); addFailureCode(output); injectTestString(output.toString()); assertCommonAttributes(); assertEquals(1, mTestResult.mNumTestsRun); assertEquals(ITestRunListener.TestFailure.FAILURE, mTestResult.mTestStatus); assertEquals(STACK_TRACE, mTestResult.mTrace); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DD'
+ name = 'testTimeParsing' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test basic parsing and conversion of time from output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E1'
+ name = 'testTimeParsing' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E2'
+ language = 'Java' body = ' final String timeString = "Time: 4.9"; injectTestString(timeString); assertEquals(4900, mTestResult.mTestTime); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E3'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test basic parsing of a test run failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E7'
+ name = 'testRunFailed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E8'
+ language = 'Java' body = ' StringBuilder output = new StringBuilder(); final String errorMessage = "Unable to find instrumentation info"; addStatusKey(output, "Error", errorMessage); addStatusCode(output, "-1"); output.append("INSTRUMENTATION_FAILED: com.dummy/android.test.InstrumentationTestRunner"); addLineBreak(output); injectTestString(output.toString()); assertEquals(errorMessage, mTestResult.mRunFailedMessage); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E9'
+ name = 'testRunFailedResult' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Test parsing of a test run failure, where an instrumentation component failed to load
+ Parsing input takes the from of INSTRUMENTATION_RESULT: fff</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048ED'
+ name = 'testRunFailedResult' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EE'
+ language = 'Java' body = ' StringBuilder output = new StringBuilder(); final String errorMessage = "Unable to instantiate instrumentation"; output.append("INSTRUMENTATION_RESULT: shortMsg="); output.append(errorMessage); addLineBreak(output); output.append("INSTRUMENTATION_CODE: 0"); addLineBreak(output); injectTestString(output.toString()); assertEquals(errorMessage, mTestResult.mRunFailedMessage); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EF'
+ name = 'buildCommonResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Builds a common test result using TEST_NAME and TEST_CLASS.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F4'
+ name = 'buildCommonResult' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F5'
+ language = 'Java' body = ' StringBuilder output = new StringBuilder(); // add test start bundle addCommonStatus(output); addStatusCode(output, "1"); // add end test bundle, without status addCommonStatus(output); return output; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F6'
+ name = 'addCommonStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds common status results to the provided output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FA'
+ name = 'output' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FC'
+ name = 'addCommonStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FD'
+ language = 'Java' body = ' addStatusKey(output, "stream", "\r\n" + CLASS_NAME); addStatusKey(output, "test", TEST_NAME); addStatusKey(output, "class", CLASS_NAME); addStatusKey(output, "current", "1"); addStatusKey(output, "numtests", "1"); addStatusKey(output, "id", "InstrumentationTestRunner"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FE'
+ name = 'addStackTrace' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004903'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a stack trace status bundle to output.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004900'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004902'
+ name = 'output' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004904'
+ name = 'addStackTrace' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004905'
+ language = 'Java' body = ' addStatusKey(output, "stack", STACK_TRACE); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004906'
+ name = 'addStatusKey' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Helper method to add a status key-value bundle.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004908'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490A'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490B'
+ name = 'key' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490C'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490E'
+ name = 'addStatusKey' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000490F'
+ language = 'Java' body = ' outputBuilder.append("INSTRUMENTATION_STATUS: "); outputBuilder.append(key); outputBuilder.append('='); outputBuilder.append(value); addLineBreak(outputBuilder); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004906'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004910'
+ name = 'addLineBreak' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004915'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Append line break characters to output</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004912'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004914'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004916'
+ name = 'addLineBreak' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004917'
+ language = 'Java' body = ' outputBuilder.append("\r\n"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004910'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004918'
+ name = 'addStartCode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491C'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491D'
+ name = 'addStartCode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491E'
+ language = 'Java' body = ' addStatusCode(outputBuilder, "1"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004918'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491F'
+ name = 'addSuccessCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004921'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004923'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004924'
+ name = 'addSuccessCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004925'
+ language = 'Java' body = ' addStatusCode(outputBuilder, "0"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004926'
+ name = 'addFailureCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004928'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492A'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492B'
+ name = 'addFailureCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492C'
+ language = 'Java' body = ' addStatusCode(outputBuilder, "-2"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004926'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492D'
+ name = 'addStatusCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004931'
+ name = 'outputBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004932'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004933'
+ name = 'addStatusCode' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004934'
+ language = 'Java' body = ' outputBuilder.append("INSTRUMENTATION_STATUS_CODE: "); outputBuilder.append(value); addLineBreak(outputBuilder); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004935'
+ name = 'injectTestString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004939'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>result
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ inject a test string into the result parser.
+
+@param result</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004937'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004938'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493B'
+ name = 'injectTestString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493C'
+ language = 'Java' body = ' byte[] data = result.getBytes(); mParser.addOutput(data, 0, data.length); mParser.flush(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004935'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493D'
+ name = 'assertCommonAttributes' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004940'
+ name = 'assertCommonAttributes' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004941'
+ language = 'Java' body = ' assertEquals(CLASS_NAME, mTestResult.mSuiteName); assertEquals(1, mTestResult.mTestCount); assertEquals(TEST_NAME, mTestResult.mTestName); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DD'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020C3'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004258'
+ name = 'RemoteAndroidTestRunner -> IRemoteAndroidTestRunner' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAC'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EA8'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004782'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000216E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C8'
+ name = 'MockDevice -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002171'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C7'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004870'
+ name = 'EmptyListener -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002173'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048A0'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002176'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004943'
+ name = 'VerifyingTestResult -> ITestRunListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002179'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Usage xmi.id = '-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457A'
+ name = 'extends' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA'/>
+ </UML:Dependency.supplier>
+ </UML:Usage>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'
+ name = 'AndroidDebugBridge' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002014'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A connection to the host-side android debug bridge (adb)
+ <p/>This is the central point to communicate with any devices, emulators, or the applications
+ running on them.
+ <p/><b>{@link #init(boolean)} must be called before anything is done.</b></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002015'
+ name = 'IDebugBridgeChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002016'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide a method that deals
+ with {@link AndroidDebugBridge} changes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E6'
+ name = 'bridgeChanged' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>bridge the new {@link AndroidDebugBridge} object.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030EB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a new {@link AndroidDebugBridge} is connected.
+ <p/>
+ This is sent from a non UI thread.
+@param bridge the new {@link AndroidDebugBridge} object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E9'
+ name = 'bridge' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002017'
+ name = 'IDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002018'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide methods that deal
+ with {@link IDevice} addition, deletion, and changes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030ED'
+ name = 'deviceConnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the new device.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when the a device is connected to the {@link AndroidDebugBridge}.
+ <p/>
+ This is sent from a non UI thread.
+@param device the new device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F0'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F3'
+ name = 'deviceDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the new device.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when the a device is connected to the {@link AndroidDebugBridge}.
+ <p/>
+ This is sent from a non UI thread.
+@param device the new device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F6'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F9'
+ name = 'deviceChanged' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>changeMask the mask describing what changed. It can contain any of the following
+ values: {@link IDevice#CHANGE_BUILD_INFO}, {@link IDevice#CHANGE_STATE},
+ {@link IDevice#CHANGE_CLIENT_LIST}
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a device data changed, or when clients are started/terminated on the device.
+ <p/>
+ This is sent from a non UI thread.
+@param device the device that was updated.
+@param changeMask the mask describing what changed. It can contain any of the following
+ values: {@link IDevice#CHANGE_BUILD_INFO}, {@link IDevice#CHANGE_STATE},
+ {@link IDevice#CHANGE_CLIENT_LIST}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FC'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FD'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002019'
+ name = 'IClientChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide methods that deal
+ with {@link Client} changes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003101'
+ name = 'clientChanged' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003106'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>changeMask the bit mask describing the changed properties. It can contain
+ any of the following values: {@link Client#CHANGE_INFO},
+ {@link Client#CHANGE_DEBUGGER_STATUS}, {@link Client#CHANGE_THREAD_MODE},
+ {@link Client#CHANGE_THREAD_DATA}, {@link Client#CHANGE_HEAP_MODE},
+ {@link Client#CHANGE_HEAP_DATA}, {@link Client#CHANGE_NATIVE_HEAP_DATA}
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003107'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when an existing client information changed.
+ <p/>
+ This is sent from a non UI thread.
+@param client the updated client.
+@param changeMask the bit mask describing the changed properties. It can contain
+ any of the following values: {@link Client#CHANGE_INFO},
+ {@link Client#CHANGE_DEBUGGER_STATUS}, {@link Client#CHANGE_THREAD_MODE},
+ {@link Client#CHANGE_THREAD_DATA}, {@link Client#CHANGE_HEAP_MODE},
+ {@link Client#CHANGE_HEAP_DATA}, {@link Client#CHANGE_NATIVE_HEAP_DATA}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003103'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003104'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003105'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201C'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003200'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201E'
+ name = '2' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003204'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003078'
+ name = 'ADB_VERSION_MICRO_MIN' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307D'
+ language = 'Java' body = ' 20'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000307E'
+ name = 'ADB_VERSION_MICRO_MAX' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003081'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003082'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003083'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003084'
+ name = 'sAdbVersion' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003087'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003088'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003089'
+ language = 'Java' body = ' Pattern.compile( "^.*(\\d+)\\.(\\d+)\\.(\\d+)$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308A'
+ name = 'ADB' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000308F'
+ language = 'Java' body = ' "adb"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003090'
+ name = 'DDMS' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003093'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003094'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003095'
+ language = 'Java' body = ' "ddms"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003096'
+ name = 'ADB_HOST' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003099'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309B'
+ language = 'Java' body = ' "127.0.0.1"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309C'
+ name = 'ADB_PORT' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000309F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A1'
+ language = 'Java' body = ' 5037'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A2'
+ name = 'sHostAddr' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030A7'
+ name = 'sSocketAddr' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AC'
+ name = 'sThis' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030AF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B1'
+ name = 'sClientSupport' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B6'
+ name = 'mAdbOsLocation' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030B9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BB'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Full path to adb. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030BD'
+ name = 'mVersionCheck' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C2'
+ name = 'mStarted' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C7'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030C8'
+ name = 'mDeviceMonitor' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030CD'
+ name = 'sBridgeListeners' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D2'
+ language = 'Java' body = ' new ArrayList<IDebugBridgeChangeListener>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D3'
+ name = 'sDeviceListeners' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D8'
+ language = 'Java' body = ' new ArrayList<IDeviceChangeListener>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030D9'
+ name = 'sClientListeners' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DE'
+ language = 'Java' body = ' new ArrayList<IClientChangeListener>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030DF'
+ name = 'sLock' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E4'
+ language = 'Java' body = ' sBridgeListeners'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003108'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>clientSupport Indicates whether the library should enable the monitoring and
+ interaction with applications running on the devices.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>DdmPreferences
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Initializes the <code>ddm</code> library.
+ <p/>This must be called once <b>before</b> any call to
+ {@link #createBridge(String, boolean)}.
+ <p>The library can be initialized in 2 ways:
+ <ul>
+ <li>Mode 1: <var>clientSupport</var> == <code>true</code>.<br>The library monitors the
+ devices and the applications running on them. It will connect to each application, as a
+ debugger of sort, to be able to interact with them through JDWP packets.</li>
+ <li>Mode 2: <var>clientSupport</var> == <code>false</code>.<br>The library only monitors
+ devices. The applications are left untouched, letting other tools built on
+ <code>ddmlib</code> to connect a debugger to them.</li>
+ </ul>
+ <p/><b>Only one tool can run in mode 1 at the same time.</b>
+ <p/>Note that mode 1 does not prevent debugging of applications running on devices. Mode 1
+ lets debuggers connect to <code>ddmlib</code> which acts as a proxy between the debuggers and
+ the applications to debug. See {@link Client#getDebuggerListenPort()}.
+ <p/>The preferences of <code>ddmlib</code> should also be initialized with whatever default
+ values were changed from the default values.
+ <p/>When the application quits, {@link #terminate()} should be called.
+@param clientSupport Indicates whether the library should enable the monitoring and
+ interaction with applications running on the devices.
+@see AndroidDebugBridge#createBridge(String, boolean)
+@see DdmPreferences</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310B'
+ name = 'clientSupport' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000310F'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003110'
+ language = 'Java' body = ' sClientSupport = clientSupport; MonitorThread monitorThread = MonitorThread.createInstance(); monitorThread.start(); HandleHello.register(monitorThread); HandleAppName.register(monitorThread); HandleTest.register(monitorThread); HandleThread.register(monitorThread); HandleHeap.register(monitorThread); HandleWait.register(monitorThread); HandleProfiling.register(monitorThread); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003108'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003111'
+ name = 'terminate' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003114'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Terminates the ddm library. This must be called upon application termination.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003113'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003115'
+ name = 'terminate' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003116'
+ language = 'Java' body = ' // kill the monitoring services if (sThis != null && sThis.mDeviceMonitor != null) { sThis.mDeviceMonitor.stop(); sThis.mDeviceMonitor = null; } MonitorThread monitorThread = MonitorThread.getInstance(); if (monitorThread != null) { monitorThread.quit(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003111'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003117'
+ name = 'getClientSupport' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the ddmlib is setup to support monitoring and interacting with
+ {@link Client}s running on the {@link IDevice}s.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003119'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311B'
+ name = 'getClientSupport' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311C'
+ language = 'Java' body = ' return sClientSupport; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003117'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311D'
+ name = 'createBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003120'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a connected bridge.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003121'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a {@link AndroidDebugBridge} that is not linked to any particular executable.
+ <p/>This bridge will expect adb to be running. It will not be able to start/stop/restart
+ adb.
+ <p/>If a bridge has already been started, it is directly returned with no changes (similar
+ to calling {@link #getBridge()}).
+@return a connected bridge.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003122'
+ name = 'createBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003123'
+ language = 'Java' body = ' synchronized (sLock) { if (sThis != null) { return sThis; } try { sThis = new AndroidDebugBridge(); sThis.start(); } catch (InvalidParameterException e) { sThis = null; } // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDebugBridgeChangeListener[] listenersCopy = sBridgeListeners.toArray( new IDebugBridgeChangeListener[sBridgeListeners.size()]); // notify the listeners of the change for (IDebugBridgeChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.bridgeChanged(sThis); } catch (Exception e) { Log.e(DDMS, e); } } return sThis; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003124'
+ name = 'createBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003129'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>forceNewBridge force creation of a new bridge even if one with the same location
+ already exists.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a connected bridge.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a new debug bridge from the location of the command line tool.
+ <p/>
+ Any existing server will be disconnected, unless the location is the same and
+ <code>forceNewBridge</code> is set to false.
+@param osLocation the location of the command line tool 'adb'
+@param forceNewBridge force creation of a new bridge even if one with the same location
+ already exists.
+@return a connected bridge.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003126'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003127'
+ name = 'osLocation' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003128'
+ name = 'forceNewBridge' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312C'
+ name = 'createBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312D'
+ language = 'Java' body = ' synchronized (sLock) { if (sThis != null) { if (sThis.mAdbOsLocation != null && sThis.mAdbOsLocation.equals(osLocation) && forceNewBridge == false) { return sThis; } else { // stop the current server sThis.stop(); } } try { sThis = new AndroidDebugBridge(osLocation); sThis.start(); } catch (InvalidParameterException e) { sThis = null; } // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDebugBridgeChangeListener[] listenersCopy = sBridgeListeners.toArray( new IDebugBridgeChangeListener[sBridgeListeners.size()]); // notify the listeners of the change for (IDebugBridgeChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.bridgeChanged(sThis); } catch (Exception e) { Log.e(DDMS, e); } } return sThis; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003124'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312E'
+ name = 'getBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003131'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the current debug bridge. Can be <code>null</code> if none were created.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003130'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003132'
+ name = 'getBridge' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003133'
+ language = 'Java' body = ' return sThis; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003134'
+ name = 'disconnectBridge' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003137'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Disconnects the current debug bridge, and destroy the object.
+ <p/>This also stops the current adb host server.
+ <p/>
+ A new object will have to be created with {@link #createBridge(String, boolean)}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003136'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003138'
+ name = 'disconnectBridge' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003139'
+ language = 'Java' body = ' synchronized (sLock) { if (sThis != null) { sThis.stop(); sThis = null; // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDebugBridgeChangeListener[] listenersCopy = sBridgeListeners.toArray( new IDebugBridgeChangeListener[sBridgeListeners.size()]); // notify the listeners. for (IDebugBridgeChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.bridgeChanged(sThis); } catch (Exception e) { Log.e(DDMS, e); } } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003134'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313A'
+ name = 'addDebugBridgeChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds the listener to the collection of listeners who will be notified when a new
+ {@link AndroidDebugBridge} is connected, by sending it one of the messages defined
+ in the {@link IDebugBridgeChangeListener} interface.
+@param listener The listener which should be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313D'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002015'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003140'
+ name = 'addDebugBridgeChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003141'
+ language = 'Java' body = ' synchronized (sLock) { if (sBridgeListeners.contains(listener) == false) { sBridgeListeners.add(listener); if (sThis != null) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.bridgeChanged(sThis); } catch (Exception e) { Log.e(DDMS, e); } } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003142'
+ name = 'removeDebugBridgeChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003146'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should no longer be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003147'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes the listener from the collection of listeners who will be notified when a new
+ {@link AndroidDebugBridge} is started.
+@param listener The listener which should no longer be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003144'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003145'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002015'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003148'
+ name = 'removeDebugBridgeChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003149'
+ language = 'Java' body = ' synchronized (sLock) { sBridgeListeners.remove(listener); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003142'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314A'
+ name = 'addDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds the listener to the collection of listeners who will be notified when a {@link IDevice}
+ is connected, disconnected, or when its properties or its {@link Client} list changed,
+ by sending it one of the messages defined in the {@link IDeviceChangeListener} interface.
+@param listener The listener which should be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314D'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002017'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003150'
+ name = 'addDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003151'
+ language = 'Java' body = ' synchronized (sLock) { if (sDeviceListeners.contains(listener) == false) { sDeviceListeners.add(listener); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003152'
+ name = 'removeDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003156'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should no longer be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003157'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes the listener from the collection of listeners who will be notified when a
+ {@link IDevice} is connected, disconnected, or when its properties or its {@link Client}
+ list changed.
+@param listener The listener which should no longer be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003154'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003155'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002017'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003158'
+ name = 'removeDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003159'
+ language = 'Java' body = ' synchronized (sLock) { sDeviceListeners.remove(listener); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003152'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315A'
+ name = 'addClientChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds the listener to the collection of listeners who will be notified when a {@link Client}
+ property changed, by sending it one of the messages defined in the
+ {@link IClientChangeListener} interface.
+@param listener The listener which should be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315D'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002019'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003160'
+ name = 'addClientChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003161'
+ language = 'Java' body = ' synchronized (sLock) { if (sClientListeners.contains(listener) == false) { sClientListeners.add(listener); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003162'
+ name = 'removeClientChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003166'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener The listener which should no longer be notified.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003167'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes the listener from the collection of listeners who will be notified when a
+ {@link Client} property changed.
+@param listener The listener which should no longer be notified.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003164'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003165'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002019'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003168'
+ name = 'removeClientChangeListener' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003169'
+ language = 'Java' body = ' synchronized (sLock) { sClientListeners.remove(listener); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003162'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316A'
+ name = 'getDevices' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#hasInitialDeviceList()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the devices.
+@see #hasInitialDeviceList()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003170'
+ name = 'getDevices' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003171'
+ language = 'Java' body = ' synchronized (sLock) { if (mDeviceMonitor != null) { return mDeviceMonitor.getDevices(); } } return new IDevice[0]; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003172'
+ name = 'hasInitialDeviceList' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003175'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the bridge has acquired the initial list from adb after being created.
+ <p/>Calling {@link #getDevices()} right after {@link #createBridge(String, boolean)} will
+ generally result in an empty list. This is due to the internal asynchronous communication
+ mechanism with <code>adb</code> that does not guarantee that the {@link IDevice} list has been
+ built before the call to {@link #getDevices()}.
+ <p/>The recommended way to get the list of {@link IDevice} objects is to create a
+ {@link IDeviceChangeListener} object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003174'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003176'
+ name = 'hasInitialDeviceList' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003177'
+ language = 'Java' body = ' if (mDeviceMonitor != null) { return mDeviceMonitor.hasInitialDeviceList(); } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003172'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003178'
+ name = 'setSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>selectedClient the client. Can be null.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the client to accept debugger connection on the custom "Selected debug port".
+@param selectedClient the client. Can be null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317B'
+ name = 'selectedClient' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317E'
+ name = 'setSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000317F'
+ language = 'Java' body = ' MonitorThread monitorThread = MonitorThread.getInstance(); if (monitorThread != null) { monitorThread.setSelectedClient(selectedClient); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003178'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003180'
+ name = 'isConnected' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003183'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the {@link AndroidDebugBridge} object is still connected to the adb daemon.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003182'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003184'
+ name = 'isConnected' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003185'
+ language = 'Java' body = ' MonitorThread monitorThread = MonitorThread.getInstance(); if (mDeviceMonitor != null && monitorThread != null) { return mDeviceMonitor.isMonitoring() && monitorThread.getState() != State.TERMINATED; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003180'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003186'
+ name = 'getConnectionAttemptCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003189'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the number of times the {@link AndroidDebugBridge} object attempted to connect
+ to the adb daemon.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003188'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318A'
+ name = 'getConnectionAttemptCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318B'
+ language = 'Java' body = ' if (mDeviceMonitor != null) { return mDeviceMonitor.getConnectionAttemptCount(); } return -1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003186'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318C'
+ name = 'getRestartAttemptCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the number of times the {@link AndroidDebugBridge} object attempted to restart
+ the adb daemon.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003190'
+ name = 'getRestartAttemptCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003191'
+ language = 'Java' body = ' if (mDeviceMonitor != null) { return mDeviceMonitor.getRestartAttemptCount(); } return -1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003192'
+ name = 'AndroidDebugBridge' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003195'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>osLocation the location of the command line tool
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003196'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidParameterException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003197'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a new bridge.
+@param osLocation the location of the command line tool
+@throws InvalidParameterException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003194'
+ name = 'osLocation' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003198'
+ name = 'AndroidDebugBridge' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003199'
+ language = 'Java' body = ' if (osLocation == null || osLocation.length() == 0) { throw new InvalidParameterException(); } mAdbOsLocation = osLocation; checkAdbVersion(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003192'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319A'
+ name = 'AndroidDebugBridge' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a new bridge not linked to any particular adb executable.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319D'
+ name = 'AndroidDebugBridge' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319E'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319F'
+ name = 'checkAdbVersion' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Queries adb for its version number and checks it against {@link #MIN_VERSION_NUMBER} and
+ {@link #MAX_VERSION_NUMBER}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A3'
+ name = 'checkAdbVersion' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A4'
+ language = 'Java' body = ' // default is bad check mVersionCheck = false; if (mAdbOsLocation == null) { return; } try { String[] command = new String[2]; command[0] = mAdbOsLocation; command[1] = "version"; //$NON-NLS-1$ Log.d(DDMS, String.format("Checking '%1$s version'", mAdbOsLocation)); //$NON-NLS-1$ Process process = Runtime.getRuntime().exec(command); ArrayList<String> errorOutput = new ArrayList<String>(); ArrayList<String> stdOutput = new ArrayList<String>(); int status = grabProcessOutput(process, errorOutput, stdOutput, true /* waitForReaders */); if (status != 0) { StringBuilder builder = new StringBuilder("'adb version' failed!"); //$NON-NLS-1$ for (String error : errorOutput) { builder.append('\n'); builder.append(error); } Log.logAndDisplay(LogLevel.ERROR, "adb", builder.toString()); } // check both stdout and stderr boolean versionFound = false; for (String line : stdOutput) { versionFound = scanVersionLine(line); if (versionFound) { break; } } if (!versionFound) { for (String line : errorOutput) { versionFound = scanVersionLine(line); if (versionFound) { break; } } } if (!versionFound) { // if we get here, we failed to parse the output. Log.logAndDisplay(LogLevel.ERROR, ADB, "Failed to parse the output of 'adb version'"); //$NON-NLS-1$ } } catch (IOException e) { Log.logAndDisplay(LogLevel.ERROR, ADB, "Failed to get the adb version: " + e.getMessage()); //$NON-NLS-1$ } catch (InterruptedException e) { } finally { } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A5'
+ name = 'scanVersionLine' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>line The line to scan.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>True if a version number was found (whether it is acceptable or not).
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Scans a line resulting from 'adb version' for a potential version number.
+ <p/>
+ If a version number is found, it checks the version number against what is expected
+ by this version of ddms.
+ <p/>
+ Returns true when a version number has been found so that we can stop scanning,
+ whether the version number is in the acceptable range or not.
+
+@param line The line to scan.
+@return True if a version number was found (whether it is acceptable or not).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A8'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AC'
+ name = 'scanVersionLine' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AD'
+ language = 'Java' body = ' if (line != null) { Matcher matcher = sAdbVersion.matcher(line); if (matcher.matches()) { int majorVersion = Integer.parseInt(matcher.group(1)); int minorVersion = Integer.parseInt(matcher.group(2)); int microVersion = Integer.parseInt(matcher.group(3)); // check only the micro version for now. if (microVersion < ADB_VERSION_MICRO_MIN) { String message = String.format( "Required minimum version of adb: %1$d.%2$d.%3$d." //$NON-NLS-1$ + "Current version is %1$d.%2$d.%4$d", //$NON-NLS-1$ majorVersion, minorVersion, ADB_VERSION_MICRO_MIN, microVersion); Log.logAndDisplay(LogLevel.ERROR, ADB, message); } else if (ADB_VERSION_MICRO_MAX != -1 && microVersion > ADB_VERSION_MICRO_MAX) { String message = String.format( "Required maximum version of adb: %1$d.%2$d.%3$d." //$NON-NLS-1$ + "Current version is %1$d.%2$d.%4$d", //$NON-NLS-1$ majorVersion, minorVersion, ADB_VERSION_MICRO_MAX, microVersion); Log.logAndDisplay(LogLevel.ERROR, ADB, message); } else { mVersionCheck = true; } return true; } } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AE'
+ name = 'start' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Starts the debug bridge.
+@return true if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B3'
+ name = 'start' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B4'
+ language = 'Java' body = ' if (mAdbOsLocation != null && (mVersionCheck == false || startAdb() == false)) { return false; } mStarted = true; // now that the bridge is connected, we start the underlying services. mDeviceMonitor = new DeviceMonitor(this); mDeviceMonitor.start(); return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B5'
+ name = 'stop' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Kills the debug bridge, and the adb host server.
+@return true if success</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BA'
+ name = 'stop' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BB'
+ language = 'Java' body = ' // if we haven't started we return false; if (mStarted == false) { return false; } // kill the monitoring services mDeviceMonitor.stop(); mDeviceMonitor = null; if (stopAdb() == false) { return false; } mStarted = false; return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BC'
+ name = 'restart' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Restarts adb, but not the services around it.
+@return true if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C1'
+ name = 'restart' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C2'
+ language = 'Java' body = ' if (mAdbOsLocation == null) { Log.e(ADB, "Cannot restart adb when AndroidDebugBridge is created without the location of adb."); //$NON-NLS-1$ return false; } if (mVersionCheck == false) { Log.logAndDisplay(LogLevel.ERROR, ADB, "Attempting to restart adb, but version check failed!"); //$NON-NLS-1$ return false; } synchronized (this) { stopAdb(); boolean restart = startAdb(); if (restart && mDeviceMonitor == null) { mDeviceMonitor = new DeviceMonitor(this); mDeviceMonitor.start(); } return restart; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C3'
+ name = 'deviceConnected' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the new <code>IDevice</code>.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getLock()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Notify the listener of a new {@link IDevice}.
+ <p/>
+ The notification of the listeners is done in a synchronized block. It is important to
+ expect the listeners to potentially access various methods of {@link IDevice} as well as
+ {@link #getDevices()} which use internal locks.
+ <p/>
+ For this reason, any call to this method from a method of {@link DeviceMonitor},
+ {@link IDevice} which is also inside a synchronized block, should first synchronize on
+ the {@link AndroidDebugBridge} lock. Access to this lock is done through {@link #getLock()}.
+@param device the new <code>IDevice</code>.
+@see #getLock()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C6'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CA'
+ name = 'deviceConnected' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CB'
+ language = 'Java' body = ' // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDeviceChangeListener[] listenersCopy = null; synchronized (sLock) { listenersCopy = sDeviceListeners.toArray( new IDeviceChangeListener[sDeviceListeners.size()]); } // Notify the listeners for (IDeviceChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.deviceConnected(device); } catch (Exception e) { Log.e(DDMS, e); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CC'
+ name = 'deviceDisconnected' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the disconnected <code>IDevice</code>.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getLock()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Notify the listener of a disconnected {@link IDevice}.
+ <p/>
+ The notification of the listeners is done in a synchronized block. It is important to
+ expect the listeners to potentially access various methods of {@link IDevice} as well as
+ {@link #getDevices()} which use internal locks.
+ <p/>
+ For this reason, any call to this method from a method of {@link DeviceMonitor},
+ {@link IDevice} which is also inside a synchronized block, should first synchronize on
+ the {@link AndroidDebugBridge} lock. Access to this lock is done through {@link #getLock()}.
+@param device the disconnected <code>IDevice</code>.
+@see #getLock()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CF'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D3'
+ name = 'deviceDisconnected' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D4'
+ language = 'Java' body = ' // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDeviceChangeListener[] listenersCopy = null; synchronized (sLock) { listenersCopy = sDeviceListeners.toArray( new IDeviceChangeListener[sDeviceListeners.size()]); } // Notify the listeners for (IDeviceChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.deviceDisconnected(device); } catch (Exception e) { Log.e(DDMS, e); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D5'
+ name = 'deviceChanged' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the modified <code>IDevice</code>.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getLock()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Notify the listener of a modified {@link IDevice}.
+ <p/>
+ The notification of the listeners is done in a synchronized block. It is important to
+ expect the listeners to potentially access various methods of {@link IDevice} as well as
+ {@link #getDevices()} which use internal locks.
+ <p/>
+ For this reason, any call to this method from a method of {@link DeviceMonitor},
+ {@link IDevice} which is also inside a synchronized block, should first synchronize on
+ the {@link AndroidDebugBridge} lock. Access to this lock is done through {@link #getLock()}.
+@param device the modified <code>IDevice</code>.
+@see #getLock()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D8'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D9'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DD'
+ name = 'deviceChanged' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DE'
+ language = 'Java' body = ' // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IDeviceChangeListener[] listenersCopy = null; synchronized (sLock) { listenersCopy = sDeviceListeners.toArray( new IDeviceChangeListener[sDeviceListeners.size()]); } // Notify the listeners for (IDeviceChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.deviceChanged(device, changeMask); } catch (Exception e) { Log.e(DDMS, e); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DF'
+ name = 'clientChanged' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>changeMask the mask indicating what changed in the <code>Client</code>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getLock()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Notify the listener of a modified {@link Client}.
+ <p/>
+ The notification of the listeners is done in a synchronized block. It is important to
+ expect the listeners to potentially access various methods of {@link IDevice} as well as
+ {@link #getDevices()} which use internal locks.
+ <p/>
+ For this reason, any call to this method from a method of {@link DeviceMonitor},
+ {@link IDevice} which is also inside a synchronized block, should first synchronize on
+ the {@link AndroidDebugBridge} lock. Access to this lock is done through {@link #getLock()}.
+@param device the modified <code>Client</code>.
+@param changeMask the mask indicating what changed in the <code>Client</code>
+@see #getLock()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E2'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E3'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E7'
+ name = 'clientChanged' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E8'
+ language = 'Java' body = ' // because the listeners could remove themselves from the list while processing // their event callback, we make a copy of the list and iterate on it instead of // the main list. // This mostly happens when the application quits. IClientChangeListener[] listenersCopy = null; synchronized (sLock) { listenersCopy = sClientListeners.toArray( new IClientChangeListener[sClientListeners.size()]); } // Notify the listeners for (IClientChangeListener listener : listenersCopy) { // we attempt to catch any exception so that a bad listener doesn't kill our // thread try { listener.clientChanged(client, changeMask); } catch (Exception e) { Log.e(DDMS, e); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031DF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E9'
+ name = 'getDeviceMonitor' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link DeviceMonitor} object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031ED'
+ name = 'getDeviceMonitor' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EE'
+ language = 'Java' body = ' return mDeviceMonitor; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EF'
+ name = 'startAdb' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Starts the adb host side server.
+@return true if success</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F4'
+ name = 'startAdb' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F5'
+ language = 'Java' body = ' if (mAdbOsLocation == null) { Log.e(ADB, "Cannot start adb when AndroidDebugBridge is created without the location of adb."); //$NON-NLS-1$ return false; } Process proc; int status = -1; try { String[] command = new String[2]; command[0] = mAdbOsLocation; command[1] = "start-server"; //$NON-NLS-1$ Log.d(DDMS, String.format("Launching '%1$s %2$s' to ensure ADB is running.", //$NON-NLS-1$ mAdbOsLocation, command[1])); proc = Runtime.getRuntime().exec(command); ArrayList<String> errorOutput = new ArrayList<String>(); ArrayList<String> stdOutput = new ArrayList<String>(); status = grabProcessOutput(proc, errorOutput, stdOutput, false /* waitForReaders */); } catch (IOException ioe) { Log.d(DDMS, "Unable to run 'adb': " + ioe.getMessage()); //$NON-NLS-1$ // we'll return false; } catch (InterruptedException ie) { Log.d(DDMS, "Unable to run 'adb': " + ie.getMessage()); //$NON-NLS-1$ // we'll return false; } if (status != 0) { Log.w(DDMS, "'adb start-server' failed -- run manually if necessary"); //$NON-NLS-1$ return false; } Log.d(DDMS, "'adb start-server' succeeded"); //$NON-NLS-1$ return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F6'
+ name = 'stopAdb' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Stops the adb host side server.
+@return true if success</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FB'
+ name = 'stopAdb' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FC'
+ language = 'Java' body = ' if (mAdbOsLocation == null) { Log.e(ADB, "Cannot stop adb when AndroidDebugBridge is created without the location of adb."); //$NON-NLS-1$ return false; } Process proc; int status = -1; try { String[] command = new String[2]; command[0] = mAdbOsLocation; command[1] = "kill-server"; //$NON-NLS-1$ proc = Runtime.getRuntime().exec(command); status = proc.waitFor(); } catch (IOException ioe) { // we'll return false; } catch (InterruptedException ie) { // we'll return false; } if (status != 0) { Log.w(DDMS, "'adb kill-server' failed -- run manually if necessary"); //$NON-NLS-1$ return false; } Log.d(DDMS, "'adb kill-server' succeeded"); //$NON-NLS-1$ return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003205'
+ name = 'grabProcessOutput' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>waitforReaders if true, this will wait for the reader threads.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the process return code.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003210'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InterruptedException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003211'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the stderr/stdout outputs of a process and return when the process is done.
+ Both <b>must</b> be read or the process will block on windows.
+@param process The process to get the ouput from
+@param errorOutput The array to store the stderr output. cannot be null.
+@param stdOutput The array to store the stdout output. cannot be null.
+@param displayStdOut If true this will display stdout as well
+@param waitforReaders if true, this will wait for the reader threads.
+@return the process return code.
+@throws InterruptedException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003207'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320A'
+ name = 'process' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003209'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320B'
+ name = 'errorOutput' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320C'
+ name = 'stdOutput' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000320D'
+ name = 'waitforReaders' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003212'
+ name = 'grabProcessOutput' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003213'
+ language = 'Java' body = ' assert errorOutput != null; assert stdOutput != null; // read the lines as they come. if null is returned, it's // because the process finished Thread t1 = new Thread("") { //$NON-NLS-1$ @Override public void run() { // create a buffer to read the stderr output InputStreamReader is = new InputStreamReader(process.getErrorStream()); BufferedReader errReader = new BufferedReader(is); try { while (true) { String line = errReader.readLine(); if (line != null) { Log.e(ADB, line); errorOutput.add(line); } else { break; } } } catch (IOException e) { // do nothing. } } }; Thread t2 = new Thread("") { //$NON-NLS-1$ @Override public void run() { InputStreamReader is = new InputStreamReader(process.getInputStream()); BufferedReader outReader = new BufferedReader(is); try { while (true) { String line = outReader.readLine(); if (line != null) { Log.d(ADB, line); stdOutput.add(line); } else { break; } } } catch (IOException e) { // do nothing. } } }; t1.start(); t2.start(); // it looks like on windows process#waitFor() can return // before the thread have filled the arrays, so we wait for both threads and the // process itself. if (waitforReaders) { try { t1.join(); } catch (InterruptedException e) { } try { t2.join(); } catch (InterruptedException e) { } } // get the return code from the process return process.waitFor(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003205'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003214'
+ name = 'getLock' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003217'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the singleton lock used by this class to protect any access to the listener.
+ <p/>
+ This includes adding/removing listeners, but also notifying listeners of new bridges,
+ devices, and clients.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003216'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003218'
+ name = 'getLock' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003219'
+ language = 'Java' body = ' return sLock; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003214'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140E'
+ name = 'DdmPreferences' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002002'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Preferences for the ddm library.
+ <p/>This class does not handle storing the preferences. It is merely a central point for
+ applications using the ddmlib to override the default values.
+ <p/>Various components of the ddmlib query this class to get their values.
+ <p/>Calls to some <code>set##()</code> methods will update the components using the values
+ right away, while other methods will have no effect once {@link AndroidDebugBridge#init(boolean)}
+ has been called.
+ <p/>Check the documentation of each method.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D48'
+ name = 'DEFAULT_INITIAL_THREAD_UPDATE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4D'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default value for thread update flag upon client connection. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D4F'
+ name = 'DEFAULT_INITIAL_HEAP_UPDATE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D52'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D53'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D54'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D55'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default value for heap update flag upon client connection. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D56'
+ name = 'DEFAULT_SELECTED_DEBUG_PORT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D59'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5B'
+ language = 'Java' body = ' 8700'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default value for the selected client debug port *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D5D'
+ name = 'DEFAULT_DEBUG_PORT_BASE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D60'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D61'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D62'
+ language = 'Java' body = ' 8600'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D63'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default value for the debug port base *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D64'
+ name = 'DEFAULT_LOG_LEVEL' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D67'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D68'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D69'
+ language = 'Java' body = ' LogLevel.ERROR'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default value for the logcat {@link LogLevel} *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6B'
+ name = 'DEFAULT_TIMEOUT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D6F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D70'
+ language = 'Java' body = ' 5000'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D71'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Default timeout values for adb connection (milliseconds) *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D72'
+ name = 'sThreadUpdate' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D75'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D76'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D77'
+ language = 'Java' body = ' DEFAULT_INITIAL_THREAD_UPDATE'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D78'
+ name = 'sInitialHeapUpdate' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7D'
+ language = 'Java' body = ' DEFAULT_INITIAL_HEAP_UPDATE'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D7E'
+ name = 'sSelectedDebugPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D81'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D83'
+ language = 'Java' body = ' DEFAULT_SELECTED_DEBUG_PORT'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D84'
+ name = 'sDebugPortBase' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D87'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D88'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D89'
+ language = 'Java' body = ' DEFAULT_DEBUG_PORT_BASE'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8A'
+ name = 'sLogLevel' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D8F'
+ language = 'Java' body = ' DEFAULT_LOG_LEVEL'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D90'
+ name = 'sTimeOut' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D93'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D94'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D95'
+ language = 'Java' body = ' DEFAULT_TIMEOUT'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D96'
+ name = 'getInitialThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D99'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#setInitialThreadUpdate(boolean)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the initial {@link Client} flag for thread updates.
+@see #setInitialThreadUpdate(boolean)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D98'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9B'
+ name = 'getInitialThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9C'
+ language = 'Java' body = ' return sThreadUpdate; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D96'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9D'
+ name = 'setInitialThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the initial {@link Client} flag for thread updates.
+ <p/>This change takes effect right away, for newly created {@link Client} objects.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA0'
+ name = 'state' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA2'
+ name = 'setInitialThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA3'
+ language = 'Java' body = ' sThreadUpdate = state; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA4'
+ name = 'getInitialHeapUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#setInitialHeapUpdate(boolean)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the initial {@link Client} flag for heap updates.
+@see #setInitialHeapUpdate(boolean)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA9'
+ name = 'getInitialHeapUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAA'
+ language = 'Java' body = ' return sInitialHeapUpdate; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAB'
+ name = 'setInitialHeapUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the initial {@link Client} flag for heap updates.
+ <p/>If <code>true</code>, the {@link ClientData} will automatically be updated with
+ the VM heap information whenever a GC happens.
+ <p/>This change takes effect right away, for newly created {@link Client} objects.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAE'
+ name = 'state' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB0'
+ name = 'setInitialHeapUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB1'
+ language = 'Java' body = ' sInitialHeapUpdate = state; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB2'
+ name = 'getSelectedDebugPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the debug port used by the selected {@link Client}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB6'
+ name = 'getSelectedDebugPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB7'
+ language = 'Java' body = ' return sSelectedDebugPort; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB8'
+ name = 'setSelectedDebugPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>port the new port to use.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the debug port used by the selected {@link Client}.
+ <p/>This change takes effect right away.
+@param port the new port to use.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBB'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBE'
+ name = 'setSelectedDebugPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DBF'
+ language = 'Java' body = ' sSelectedDebugPort = port; MonitorThread monitorThread = MonitorThread.getInstance(); if (monitorThread != null) { monitorThread.setDebugSelectedPort(port); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC0'
+ name = 'getDebugPortBase' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the debug port used by the first {@link Client}. Following clients, will use the
+ next port.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC4'
+ name = 'getDebugPortBase' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC5'
+ language = 'Java' body = ' return sDebugPortBase; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC6'
+ name = 'setDebugPortBase' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the debug port used by the first {@link Client}.
+ <p/>Once a port is used, the next Client will use port + 1. Quitting applications will
+ release their debug port, and new clients will be able to reuse them.
+ <p/>This must be called before {@link AndroidDebugBridge#init(boolean)}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC9'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCB'
+ name = 'setDebugPortBase' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCC'
+ language = 'Java' body = ' sDebugPortBase = port; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCD'
+ name = 'getLogLevel' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the minimum {@link LogLevel} being displayed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD1'
+ name = 'getLogLevel' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD2'
+ language = 'Java' body = ' return sLogLevel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD3'
+ name = 'setLogLevel' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the minimum {@link LogLevel} to display.
+ <p/>This change takes effect right away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD6'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD8'
+ name = 'setLogLevel' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD9'
+ language = 'Java' body = ' sLogLevel = LogLevel.getByString(value); Log.setLevel(sLogLevel); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDA'
+ name = 'getTimeOut' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the timeout to be used in adb connections (milliseconds).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDE'
+ name = 'getTimeOut' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDF'
+ language = 'Java' body = ' return sTimeOut; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE0'
+ name = 'setTimeOut' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>timeOut the timeout value (milliseconds).
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the timeout value for adb connection.
+ <p/>This change takes effect for newly created connections only.
+@param timeOut the timeout value (milliseconds).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE3'
+ name = 'timeOut' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE6'
+ name = 'setTimeOut' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE7'
+ language = 'Java' body = ' sTimeOut = timeOut; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE8'
+ name = 'DdmPreferences' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Non accessible constructor.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEB'
+ name = 'DdmPreferences' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEC'
+ language = 'Java' body = ' // pass, only static methods in the class. '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'
+ name = 'LogLevel' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A56'
+ name = 'IDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A47'
+ name = 'ILogOutput' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F57'
+ name = 'HandleWait.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002180'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002184'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217D'
+ name = 'HandleWait.java -> DebuggerStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F57'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002180'
+ name = 'HandleWait.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F57'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002184'
+ name = 'HandleWait.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F57'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F59'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F58'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F58'
+ name = 'HandleWait' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle the "wait" chunk (WAIT). These are sent up when the client is
+ waiting for something, e.g. for a debugger to attach.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002186'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002187'
+ name = 'CHUNK_WAIT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218C'
+ language = 'Java' body = ' ChunkHandler.type("WAIT")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000218D'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002190'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002191'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002192'
+ language = 'Java' body = ' new HandleWait()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F58'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002193'
+ name = 'HandleWait' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002195'
+ name = 'HandleWait' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002196'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002193'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002197'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002199'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219A'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219C'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219D'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_WAIT, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002197'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219E'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A1'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A3'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A4'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A5'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A8'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AA'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AB'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AC'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AF'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B0'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B1'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B2'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B3'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B5'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B6'
+ language = 'Java' body = ' Log.d("ddm-wait", "handling " + ChunkHandler.name(type)); if (type == CHUNK_WAIT) { assert !isReply; handleWAIT(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B7'
+ name = 'handleWAIT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021BA'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021BB'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021BC'
+ name = 'handleWAIT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021BD'
+ language = 'Java' body = ' byte reason; reason = data.get(); Log.d("ddm-wait", "WAIT: reason=" + reason); ClientData cd = client.getClientData(); synchronized (cd) { cd.setDebuggerConnectionStatus(DebuggerStatus.WAITING); } client.update(Client.CHANGE_DEBUGGER_STATUS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5B'
+ name = 'IStackTraceInfo.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5D'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5C'
+ name = 'IStackTraceInfo' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide a method that returns a stack trace.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C0'
+ name = 'getStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the stack trace. This can be <code>null</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5F'
+ name = 'BadPacketException.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F61'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F60'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F60'
+ name = 'BadPacketException' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F62'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Thrown if the contents of a packet are bad.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C8'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C9'
+ name = 'BadPacketException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CB'
+ name = 'BadPacketException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CC'
+ language = 'Java' body = ' super(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CD'
+ name = 'BadPacketException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CF'
+ name = 'msg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D0'
+ name = 'BadPacketException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D1'
+ language = 'Java' body = ' super(msg); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'
+ name = 'HandleNativeHeap.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DC'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DD'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E0'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D5'
+ name = 'HandleNativeHeap.java -> BufferedReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D8'
+ name = 'HandleNativeHeap.java -> ByteArrayInputStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D6'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D9'
+ name = 'HandleNativeHeap.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DC'
+ name = 'HandleNativeHeap.java -> InputStreamReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DD'
+ name = 'HandleNativeHeap.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E0'
+ name = 'HandleNativeHeap.java -> ByteOrder' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F65'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F64'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F64'
+ name = 'HandleNativeHeap' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F66'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle thread status updates.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E2'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E3'
+ name = 'CHUNK_NHGT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E8'
+ language = 'Java' body = ' type("NHGT")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E9'
+ name = 'CHUNK_NHSG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021EC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021ED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021EE'
+ language = 'Java' body = ' type("NHSG")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021EF'
+ name = 'CHUNK_NHST' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F4'
+ language = 'Java' body = ' type("NHST")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F5'
+ name = 'CHUNK_NHEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021F9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FA'
+ language = 'Java' body = ' type("NHEN")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FB'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002200'
+ language = 'Java' body = ' new HandleNativeHeap()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F64'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002201'
+ name = 'HandleNativeHeap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002203'
+ name = 'HandleNativeHeap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002204'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002201'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002205'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002209'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002207'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002208'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220A'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220B'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_NHGT, mInst); mt.registerChunkHandler(CHUNK_NHSG, mInst); mt.registerChunkHandler(CHUNK_NHST, mInst); mt.registerChunkHandler(CHUNK_NHEN, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002205'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220C'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002210'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220F'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002211'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002212'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002213'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002217'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002215'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002216'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002218'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002219'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002213'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221A'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002222'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221D'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221E'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221F'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002220'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002221'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002223'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002224'
+ language = 'Java' body = ' Log.d("ddm-nativeheap", "handling " + ChunkHandler.name(type)); if (type == CHUNK_NHGT) { handleNHGT(client, data); } else if (type == CHUNK_NHST) { // start chunk before any NHSG chunk(s) client.getClientData().getNativeHeapData().clearHeapData(); } else if (type == CHUNK_NHEN) { // end chunk after NHSG chunk(s) client.getClientData().getNativeHeapData().sealHeapData(); } else if (type == CHUNK_NHSG) { handleNHSG(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } client.update(Client.CHANGE_NATIVE_HEAP_DATA); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002225'
+ name = 'sendNHGT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002229'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send an NHGT (Native Thread GeT) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002227'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002228'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222A'
+ name = 'sendNHGT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222B'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data in request message finishChunkPacket(packet, CHUNK_NHGT, buf.position()); Log.d("ddm-nativeheap", "Sending " + name(CHUNK_NHGT)); client.sendAndConsume(packet, mInst); rawBuf = allocBuffer(2); packet = new JdwpPacket(rawBuf); buf = getChunkDataBuf(rawBuf); buf.put((byte)HandleHeap.WHEN_GC); buf.put((byte)HandleHeap.WHAT_OBJ); finishChunkPacket(packet, CHUNK_NHSG, buf.position()); Log.d("ddm-nativeheap", "Sending " + name(CHUNK_NHSG)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002225'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222C'
+ name = 'handleNHGT' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222F'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002230'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002231'
+ name = 'handleNHGT' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002232'
+ language = 'Java' body = ' ClientData cd = client.getClientData(); Log.d("ddm-nativeheap", "NHGT: " + data.limit() + " bytes"); // TODO - process incoming data and save in "cd" byte[] copy = new byte[data.limit()]; data.get(copy); // clear the previous run cd.clearNativeAllocationInfo(); ByteBuffer buffer = ByteBuffer.wrap(copy); buffer.order(ByteOrder.LITTLE_ENDIAN); // read the header // typedef struct Header { // uint32_t mapSize; // uint32_t allocSize; // uint32_t allocInfoSize; // uint32_t totalMemory; // uint32_t backtraceSize; // }; int mapSize = buffer.getInt(); int allocSize = buffer.getInt(); int allocInfoSize = buffer.getInt(); int totalMemory = buffer.getInt(); int backtraceSize = buffer.getInt(); Log.d("ddms", "mapSize: " + mapSize); Log.d("ddms", "allocSize: " + allocSize); Log.d("ddms", "allocInfoSize: " + allocInfoSize); Log.d("ddms", "totalMemory: " + totalMemory); cd.setTotalNativeMemory(totalMemory); // this means that updates aren't turned on. if (allocInfoSize == 0) return; if (mapSize > 0) { byte[] maps = new byte[mapSize]; buffer.get(maps, 0, mapSize); parseMaps(cd, maps); } int iterations = allocSize / allocInfoSize; for (int i = 0 ; i < iterations ; i++) { NativeAllocationInfo info = new NativeAllocationInfo( buffer.getInt() /* size */, buffer.getInt() /* allocations */); for (int j = 0 ; j < backtraceSize ; j++) { long addr = ((long)buffer.getInt()) & 0x00000000ffffffffL; info.addStackCallAddress(addr);; } cd.addNativeAllocation(info); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002233'
+ name = 'handleNHSG' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002235'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002236'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002237'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002238'
+ name = 'handleNHSG' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002239'
+ language = 'Java' body = ' byte dataCopy[] = new byte[data.limit()]; data.rewind(); data.get(dataCopy); data = ByteBuffer.wrap(dataCopy); client.getClientData().getNativeHeapData().addHeapData(data); if (true) { return; } // WORK IN PROGRESS // Log.e("ddm-nativeheap", "NHSG: ----------------------------------"); // Log.e("ddm-nativeheap", "NHSG: " + data.limit() + " bytes"); byte[] copy = new byte[data.limit()]; data.get(copy); ByteBuffer buffer = ByteBuffer.wrap(copy); buffer.order(ByteOrder.BIG_ENDIAN); int id = buffer.getInt(); int unitsize = (int) buffer.get(); long startAddress = (long) buffer.getInt() & 0x00000000ffffffffL; int offset = buffer.getInt(); int allocationUnitCount = buffer.getInt(); // Log.e("ddm-nativeheap", "id: " + id); // Log.e("ddm-nativeheap", "unitsize: " + unitsize); // Log.e("ddm-nativeheap", "startAddress: 0x" + Long.toHexString(startAddress)); // Log.e("ddm-nativeheap", "offset: " + offset); // Log.e("ddm-nativeheap", "allocationUnitCount: " + allocationUnitCount); // Log.e("ddm-nativeheap", "end: 0x" + // Long.toHexString(startAddress + unitsize * allocationUnitCount)); // read the usage while (buffer.position() < buffer.limit()) { int eState = (int)buffer.get() & 0x000000ff; int eLen = ((int)buffer.get() & 0x000000ff) + 1; //Log.e("ddm-nativeheap", "solidity: " + (eState & 0x7) + " - kind: " // + ((eState >> 3) & 0x7) + " - len: " + eLen); } // count += unitsize * allocationUnitCount; // Log.e("ddm-nativeheap", "count = " + count); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002233'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223A'
+ name = 'parseMaps' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223D'
+ name = 'cd' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002077'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223E'
+ name = 'maps' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223F'
+ name = 'parseMaps' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002240'
+ language = 'Java' body = ' InputStreamReader input = new InputStreamReader(new ByteArrayInputStream(maps)); BufferedReader reader = new BufferedReader(input); String line; try { // most libraries are defined on several lines, so we need to make sure we parse // all the library lines and only add the library at the end long startAddr = 0; long endAddr = 0; String library = null; while ((line = reader.readLine()) != null) { Log.d("ddms", "line: " + line); if (line.length() < 16) { continue; } try { long tmpStart = Long.parseLong(line.substring(0, 8), 16); long tmpEnd = Long.parseLong(line.substring(9, 17), 16); /* * only check for library addresses as defined in * //device/config/prelink-linux-arm.map */ if (tmpStart >= 0x0000000080000000L && tmpStart <= 0x00000000BFFFFFFFL) { int index = line.indexOf('/'); if (index == -1) continue; String tmpLib = line.substring(index); if (library == null || (library != null && tmpLib.equals(library) == false)) { if (library != null) { cd.addNativeLibraryMapInfo(startAddr, endAddr, library); Log.d("ddms", library + "(" + Long.toHexString(startAddr) + " - " + Long.toHexString(endAddr) + ")"); } // now init the new library library = tmpLib; startAddr = tmpStart; endAddr = tmpEnd; } else { // add the new end endAddr = tmpEnd; } } } catch (NumberFormatException e) { e.printStackTrace(); } } if (library != null) { cd.addNativeLibraryMapInfo(startAddr, endAddr, library); Log.d("ddms", library + "(" + Long.toHexString(startAddr) + " - " + Long.toHexString(endAddr) + ")"); } } catch (IOException e) { e.printStackTrace(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F67'
+ name = 'NativeStackCallInfo.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002245'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002248'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002245'
+ name = 'NativeStackCallInfo.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F67'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002248'
+ name = 'NativeStackCallInfo.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F67'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F69'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F68'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F68'
+ name = 'NativeStackCallInfo' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represents a stack call. This is used to return all of the call
+ information as one object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224A'
+ name = 'SOURCE_NAME_PATTERN' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000224F'
+ language = 'Java' body = ' Pattern.compile("^(.+):(\\d+)$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002250'
+ name = 'mLibrary' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002253'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002254'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002255'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> name of the library *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002256'
+ name = 'mMethod' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002259'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> name of the method *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225C'
+ name = 'mSourceFile' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000225F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002260'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002261'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ name of the source file + line number in the format<br>
+ &lt;sourcefile&gt;:&lt;linenumber&gt;</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002262'
+ name = 'mLineNumber' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002265'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002266'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002267'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002268'
+ name = 'NativeStackCallInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>sourceFile the name of the source file and the line number
+ as "[sourcefile]:[fileNumber]"
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Basic constructor with library, method, and sourcefile information
+
+@param lib The name of the library
+@param method the name of the method
+@param sourceFile the name of the source file and the line number
+ as "[sourcefile]:[fileNumber]"</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226A'
+ name = 'lib' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226B'
+ name = 'method' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226C'
+ name = 'sourceFile' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000226F'
+ name = 'NativeStackCallInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002270'
+ language = 'Java' body = ' mLibrary = lib; mMethod = method; Matcher m = SOURCE_NAME_PATTERN.matcher(sourceFile); if (m.matches()) { mSourceFile = m.group(1); try { mLineNumber = Integer.parseInt(m.group(2)); } catch (NumberFormatException e) { // do nothing, the line number will stay at -1 } } else { mSourceFile = sourceFile; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002268'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002271'
+ name = 'getLibraryName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002274'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the library name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002273'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002275'
+ name = 'getLibraryName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002276'
+ language = 'Java' body = ' return mLibrary; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002271'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002277'
+ name = 'getMethodName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the method.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002279'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227B'
+ name = 'getMethodName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227C'
+ language = 'Java' body = ' return mMethod; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002277'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227D'
+ name = 'getSourceFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002280'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the source file.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002281'
+ name = 'getSourceFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002282'
+ language = 'Java' body = ' return mSourceFile; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002283'
+ name = 'getLineNumber' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002286'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the line number, or -1 if unknown.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002285'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002287'
+ name = 'getLineNumber' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002288'
+ language = 'Java' body = ' return mLineNumber; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002283'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'
+ name = 'Device.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002292'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002294'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002297'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002299'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228B'
+ name = 'Device.java -> SyncResult' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228A'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228C'
+ name = 'Device.java -> LogReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228D'
+ name = 'Device.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228E'
+ name = 'Device.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002292'
+ name = 'Device.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002294'
+ name = 'Device.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002297'
+ name = 'Device.java -> Collections' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002296'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002299'
+ name = 'Device.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229A'
+ name = 'Device.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229C'
+ name = 'Device.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229D'
+ name = 'Device.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229E'
+ name = 'Device.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6D'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'
+ name = 'Device' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A0'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A Device. It can be a physical device or an emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6F'
+ name = 'InstallReceiver' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F70'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Output receiver for "pm install package.apk" command line.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DD'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DE'
+ name = 'SUCCESS_OUTPUT' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E3'
+ language = 'Java' body = ' "Success"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E4'
+ name = 'FAILURE_PATTERN' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022E9'
+ language = 'Java' body = ' Pattern.compile("Failure\\s+\\[(.*)\\]")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022EA'
+ name = 'mErrorMessage' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022ED'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022EE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022EF'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F0'
+ name = 'InstallReceiver' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F2'
+ name = 'InstallReceiver' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F3'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F4'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F7'
+ name = 'lines' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F8'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F9'
+ language = 'Java' body = ' for (String line : lines) { if (line.length() > 0) { if (line.startsWith(SUCCESS_OUTPUT)) { mErrorMessage = null; } else { Matcher m = FAILURE_PATTERN.matcher(line); if (m.matches()) { mErrorMessage = m.group(1); } } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FA'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FD'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FE'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FF'
+ name = 'getErrorMessage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002301'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002302'
+ name = 'getErrorMessage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002303'
+ language = 'Java' body = ' return mErrorMessage; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A1'
+ name = 'RE_EMULATOR_SN' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A6'
+ language = 'Java' body = ' "emulator-(\\d+)"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Emulator Serial Number regexp. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A8'
+ name = 'mSerialNumber' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AD'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Serial number of the device *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022AF'
+ name = 'mAvdName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B4'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Name of the AVD *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022B7'
+ name = 'mState' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BC'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> State of the device. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022BE'
+ name = 'mProperties' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C3'
+ language = 'Java' body = ' new HashMap<String, String>()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Device properties. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C5'
+ name = 'mClients' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022C9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CA'
+ language = 'Java' body = ' new ArrayList<Client>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CB'
+ name = 'mMonitor' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022CF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D0'
+ name = 'LOG_TAG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D5'
+ language = 'Java' body = ' "Device"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D6'
+ name = 'mSocketChannel' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Socket for the connection monitoring client connection/disconnection.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002304'
+ name = 'getSerialNumber' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002306'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002307'
+ name = 'getSerialNumber' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002308'
+ language = 'Java' body = ' return mSerialNumber; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002304'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002309'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> {@inheritDoc} *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230D'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230E'
+ language = 'Java' body = ' return mAvdName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002309'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230F'
+ name = 'setAvdName' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002313'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the name of the AVD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002311'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002312'
+ name = 'avdName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002314'
+ name = 'setAvdName' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002315'
+ language = 'Java' body = ' if (isEmulator() == false) { throw new IllegalArgumentException( "Cannot set the AVD name of the device is not an emulator"); } mAvdName = avdName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002316'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002318'
+ name = 'return' isSpecification = 'false' kind = 'return'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002319'
+ name = 'getState' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231A'
+ language = 'Java' body = ' return mState; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002316'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231B'
+ name = 'setState' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Changes the state of the device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231E'
+ name = 'state' isSpecification = 'false' kind = 'in'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002320'
+ name = 'setState' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002321'
+ language = 'Java' body = ' mState = state; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002322'
+ name = 'getProperties' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002324'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002325'
+ name = 'getProperties' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002326'
+ language = 'Java' body = ' return Collections.unmodifiableMap(mProperties); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002322'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002327'
+ name = 'getPropertyCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002329'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232A'
+ name = 'getPropertyCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232B'
+ language = 'Java' body = ' return mProperties.size(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002327'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232C'
+ name = 'getProperty' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232F'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002330'
+ name = 'getProperty' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002331'
+ language = 'Java' body = ' return mProperties.get(name); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002332'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002334'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002335'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002336'
+ language = 'Java' body = ' return mSerialNumber; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002332'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002337'
+ name = 'isOnline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002339'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233A'
+ name = 'isOnline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233B'
+ language = 'Java' body = ' return mState == DeviceState.ONLINE; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002337'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233C'
+ name = 'isEmulator' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233F'
+ name = 'isEmulator' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002340'
+ language = 'Java' body = ' return mSerialNumber.matches(RE_EMULATOR_SN); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002341'
+ name = 'isOffline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002343'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002344'
+ name = 'isOffline' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002345'
+ language = 'Java' body = ' return mState == DeviceState.OFFLINE; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002341'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002346'
+ name = 'isBootLoader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002348'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002349'
+ name = 'isBootLoader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234A'
+ language = 'Java' body = ' return mState == DeviceState.BOOTLOADER; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002346'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234B'
+ name = 'hasClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234E'
+ name = 'hasClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234F'
+ language = 'Java' body = ' return mClients.size() > 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002350'
+ name = 'getClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002353'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002352'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002354'
+ name = 'getClients' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002355'
+ language = 'Java' body = ' synchronized (mClients) { return mClients.toArray(new Client[mClients.size()]); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002350'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002356'
+ name = 'getClient' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002358'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002359'
+ name = 'applicationName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235A'
+ name = 'getClient' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235B'
+ language = 'Java' body = ' synchronized (mClients) { for (Client c : mClients) { if (applicationName.equals(c.getClientData().getClientDescription())) { return c; } } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002356'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235C'
+ name = 'getSyncService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235F'
+ name = 'getSyncService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002360'
+ language = 'Java' body = ' SyncService syncService = new SyncService(AndroidDebugBridge.sSocketAddr, this); if (syncService.openSync()) { return syncService; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002361'
+ name = 'getFileListingService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002363'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002364'
+ name = 'getFileListingService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002365'
+ language = 'Java' body = ' return new FileListingService(this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002361'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002366'
+ name = 'getScreenshot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002368'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002369'
+ name = 'getScreenshot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236A'
+ language = 'Java' body = ' return AdbHelper.getFrameBuffer(AndroidDebugBridge.sSocketAddr, this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002366'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236B'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236E'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236F'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002370'
+ name = 'executeShellCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002371'
+ language = 'Java' body = ' AdbHelper.executeRemoteCommand(AndroidDebugBridge.sSocketAddr, command, this, receiver); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002372'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002374'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002375'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002376'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002377'
+ language = 'Java' body = ' AdbHelper.runEventLogService(AndroidDebugBridge.sSocketAddr, this, receiver); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002372'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002378'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237B'
+ name = 'logname' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237C'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237D'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237E'
+ language = 'Java' body = ' AdbHelper.runLogService(AndroidDebugBridge.sSocketAddr, this, logname, receiver); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002378'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237F'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002381'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002382'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002383'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002384'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002385'
+ language = 'Java' body = ' try { return AdbHelper.createForward(AndroidDebugBridge.sSocketAddr, this, localPort, remotePort); } catch (IOException e) { Log.e("adb-forward", e); //$NON-NLS-1$ return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000237F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002386'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002388'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002389'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238A'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238B'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238C'
+ language = 'Java' body = ' try { return AdbHelper.removeForward(AndroidDebugBridge.sSocketAddr, this, localPort, remotePort); } catch (IOException e) { Log.e("adb-remove-forward", e); //$NON-NLS-1$ return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002386'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238D'
+ name = 'getClientName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002390'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002391'
+ name = 'getClientName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002392'
+ language = 'Java' body = ' synchronized (mClients) { for (Client c : mClients) { if (c.getClientData().getPid() == pid) { return c.getClientData().getClientDescription(); } } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002393'
+ name = 'Device' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002395'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002396'
+ name = 'serialNumber' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002397'
+ name = 'deviceState' isSpecification = 'false' kind = 'in'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002398'
+ name = 'Device' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002399'
+ language = 'Java' body = ' mMonitor = monitor; mSerialNumber = serialNumber; mState = deviceState; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002393'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239A'
+ name = 'getMonitor' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239D'
+ name = 'getMonitor' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239E'
+ language = 'Java' body = ' return mMonitor; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239F'
+ name = 'addClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A2'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A3'
+ name = 'addClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A4'
+ language = 'Java' body = ' synchronized (mClients) { mClients.add(client); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A5'
+ name = 'getClientList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A8'
+ name = 'getClientList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A9'
+ language = 'Java' body = ' return mClients; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AA'
+ name = 'hasClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AD'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AE'
+ name = 'hasClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AF'
+ language = 'Java' body = ' synchronized (mClients) { for (Client client : mClients) { if (client.getClientData().getPid() == pid) { return true; } } } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B0'
+ name = 'clearClientList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B3'
+ name = 'clearClientList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B4'
+ language = 'Java' body = ' synchronized (mClients) { mClients.clear(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B5'
+ name = 'setClientMonitoringSocket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>socketChannel the sockets
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the client monitoring socket.
+@param socketChannel the sockets</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B8'
+ name = 'socketChannel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BB'
+ name = 'setClientMonitoringSocket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BC'
+ language = 'Java' body = ' mSocketChannel = socketChannel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BD'
+ name = 'getClientMonitoringSocket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the client monitoring socket.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C1'
+ name = 'getClientMonitoringSocket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C2'
+ language = 'Java' body = ' return mSocketChannel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C3'
+ name = 'removeClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>notify Whether or not to notify the listeners of a change.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes a {@link Client} from the list.
+@param client the client to remove.
+@param notify Whether or not to notify the listeners of a change.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C6'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C7'
+ name = 'notify' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CA'
+ name = 'removeClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CB'
+ language = 'Java' body = ' mMonitor.addPortToAvailableList(client.getDebuggerListenPort()); synchronized (mClients) { mClients.remove(client); } if (notify) { mMonitor.getServer().deviceChanged(this, CHANGE_CLIENT_LIST); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CC'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CF'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D0'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D1'
+ language = 'Java' body = ' mMonitor.getServer().deviceChanged(this, changeMask); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D2'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D5'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D6'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D7'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D8'
+ language = 'Java' body = ' mMonitor.getServer().clientChanged(client, changeMask); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D9'
+ name = 'addProperty' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DC'
+ name = 'label' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DD'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DE'
+ name = 'addProperty' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DF'
+ language = 'Java' body = ' mProperties.put(label, value); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E0'
+ name = 'installPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E3'
+ name = 'packageFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E4'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E6'
+ name = 'installPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E7'
+ language = 'Java' body = ' String remoteFilePath = syncPackageToDevice(packageFilePath); String result = installRemotePackage(remoteFilePath, reinstall); removeRemotePackage(remoteFilePath); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E8'
+ name = 'syncPackageToDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EB'
+ name = 'localFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023ED'
+ name = 'syncPackageToDevice' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EE'
+ language = 'Java' body = ' try { String packageFileName = getFileName(localFilePath); String remoteFilePath = String.format("/data/local/tmp/%1$s", packageFileName); //$NON-NLS-1$ Log.d(packageFileName, String.format("Uploading %1$s onto device '%2$s'", packageFileName, getSerialNumber())); SyncService sync = getSyncService(); if (sync != null) { String message = String.format("Uploading file onto device '%1$s'", getSerialNumber()); Log.d(LOG_TAG, message); SyncResult result = sync.pushFile(localFilePath, remoteFilePath, SyncService.getNullProgressMonitor()); if (result.getCode() != SyncService.RESULT_OK) { throw new IOException(String.format("Unable to upload file: %1$s", result.getMessage())); } } else { throw new IOException("Unable to open sync connection!"); } return remoteFilePath; } catch (IOException e) { Log.e(LOG_TAG, String.format("Unable to open sync connection! reason: %1$s", e.getMessage())); throw e; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EF'
+ name = 'getFileName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>filePath full directory path to file
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link String} file name
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Helper method to retrieve the file name given a local file path
+@param filePath full directory path to file
+@return {@link String} file name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F2'
+ name = 'filePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F6'
+ name = 'getFileName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F7'
+ language = 'Java' body = ' return new File(filePath).getName(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F8'
+ name = 'installRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FB'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FC'
+ name = 'reinstall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FE'
+ name = 'installRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023FF'
+ language = 'Java' body = ' InstallReceiver receiver = new InstallReceiver(); String cmd = String.format(reinstall ? "pm install -r \"%1$s\"" : "pm install \"%1$s\"", remoteFilePath); executeShellCommand(cmd, receiver); return receiver.getErrorMessage(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002400'
+ name = 'removeRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002404'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002402'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002403'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002405'
+ name = 'removeRemotePackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002406'
+ language = 'Java' body = ' // now we delete the app we sync'ed try { executeShellCommand("rm " + remoteFilePath, new NullOutputReceiver()); } catch (IOException e) { Log.e(LOG_TAG, String.format("Failed to delete temporary package: %1$s", e.getMessage())); throw e; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002400'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002407'
+ name = 'uninstallPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ {@inheritDoc}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002409'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240A'
+ name = 'packageName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240C'
+ name = 'uninstallPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240D'
+ language = 'Java' body = ' InstallReceiver receiver = new InstallReceiver(); executeShellCommand("pm uninstall " + packageName, receiver); return receiver.getErrorMessage(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002407'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F71'
+ name = 'HandleAppName.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002410'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000240F'
+ name = 'HandleAppName.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F71'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002410'
+ name = 'HandleAppName.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F71'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F73'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F72'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F72'
+ name = 'HandleAppName' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F74'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle the "app name" chunk (APNM).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002412'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002413'
+ name = 'CHUNK_APNM' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002416'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002417'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002418'
+ language = 'Java' body = ' ChunkHandler.type("APNM")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002419'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241E'
+ language = 'Java' body = ' new HandleAppName()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F72'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241F'
+ name = 'HandleAppName' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002421'
+ name = 'HandleAppName' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002422'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000241F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002423'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002427'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002425'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002426'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002428'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002429'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_APNM, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002423'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242A'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242D'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242F'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002430'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002431'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002435'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002433'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002434'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002436'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002437'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002431'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002438'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002440'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243B'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243C'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243D'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243E'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000243F'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002441'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002442'
+ language = 'Java' body = ' Log.d("ddm-appname", "handling " + ChunkHandler.name(type)); if (type == CHUNK_APNM) { assert !isReply; handleAPNM(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002438'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002443'
+ name = 'handleAPNM' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002445'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002446'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002447'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002448'
+ name = 'handleAPNM' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002449'
+ language = 'Java' body = ' int appNameLen; String appName; appNameLen = data.getInt(); appName = getString(data, appNameLen); Log.d("ddm-appname", "APNM: app='" + appName + "'"); ClientData cd = client.getClientData(); synchronized (cd) { cd.setClientDescription(appName); } client = checkDebuggerPortForAppName(client, appName); if (client != null) { client.update(Client.CHANGE_NAME); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002443'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'
+ name = 'DeviceMonitor.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002451'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002452'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002455'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002459'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002460'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002463'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002464'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002466'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002468'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002469'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244C'
+ name = 'DeviceMonitor.java -> AdbResponse' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244D'
+ name = 'DeviceMonitor.java -> DebuggerStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244F'
+ name = 'DeviceMonitor.java -> IDebugPortProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002451'
+ name = 'DeviceMonitor.java -> DeviceState' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002450'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002452'
+ name = 'DeviceMonitor.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002455'
+ name = 'DeviceMonitor.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002459'
+ name = 'DeviceMonitor.java -> UnknownHostException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002458'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245A'
+ name = 'DeviceMonitor.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245D'
+ name = 'DeviceMonitor.java -> AsynchronousCloseException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002460'
+ name = 'DeviceMonitor.java -> SelectionKey' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002463'
+ name = 'DeviceMonitor.java -> Selector' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002464'
+ name = 'DeviceMonitor.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002466'
+ name = 'DeviceMonitor.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002468'
+ name = 'DeviceMonitor.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002469'
+ name = 'DeviceMonitor.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246A'
+ name = 'DeviceMonitor.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246B'
+ name = 'DeviceMonitor.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F75'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F77'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F76'
+ name = 'DeviceMonitor' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F78'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A Device monitor. This connects to the Android Debug Bridge and get device and
+ debuggable process information from it.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7A'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7C'
+ name = '2' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246D'
+ name = 'mLengthBuffer' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002470'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002471'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002472'
+ language = 'Java' body = ' new byte[4]'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002473'
+ name = 'mLengthBuffer2' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002476'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002477'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002478'
+ language = 'Java' body = ' new byte[4]'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002479'
+ name = 'mQuit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247E'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000247F'
+ name = 'mServer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002482'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002483'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002484'
+ name = 'mMainAdbConnection' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002487'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002488'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002489'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248A'
+ name = 'mMonitoring' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000248F'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002490'
+ name = 'mConnectionAttempt' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002493'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002494'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002495'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002496'
+ name = 'mRestartAttemptCount' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002499'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249B'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249C'
+ name = 'mInitialDeviceListDone' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000249F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A1'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A2'
+ name = 'mSelector' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024A7'
+ name = 'mDevices' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AC'
+ language = 'Java' body = ' new ArrayList<Device>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024AD'
+ name = 'mDebuggerPorts' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B2'
+ language = 'Java' body = ' new ArrayList<Integer>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B3'
+ name = 'mClientsToReopen' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B8'
+ language = 'Java' body = ' new HashMap<Client, Integer>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B9'
+ name = 'DeviceMonitor' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>server the running {@link AndroidDebugBridge}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a new {@link DeviceMonitor} object and links it to the running
+ {@link AndroidDebugBridge} object.
+@param server the running {@link AndroidDebugBridge}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BB'
+ name = 'server' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BE'
+ name = 'DeviceMonitor' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BF'
+ language = 'Java' body = ' mServer = server; mDebuggerPorts.add(DdmPreferences.getDebugPortBase()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024B9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C2'
+ name = 'start' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Starts the monitoring.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C6'
+ name = 'start' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C7'
+ language = 'Java' body = ' new Thread("Device List Monitor") { //$NON-NLS-1$ @Override public void run() { deviceMonitorLoop(); } }.start(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C8'
+ name = 'stop' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Stops the monitoring.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CC'
+ name = 'stop' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CD'
+ language = 'Java' body = ' mQuit = true; // wakeup the main loop thread by closing the main connection to adb. try { if (mMainAdbConnection != null) { mMainAdbConnection.close(); } } catch (IOException e1) { } // wake up the secondary loop by closing the selector. if (mSelector != null) { mSelector.wakeup(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CE'
+ name = 'isMonitoring' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the monitor is currently connected to the debug bridge server.
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D3'
+ name = 'isMonitoring' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D4'
+ language = 'Java' body = ' return mMonitoring; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D5'
+ name = 'getConnectionAttemptCount' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D8'
+ name = 'getConnectionAttemptCount' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D9'
+ language = 'Java' body = ' return mConnectionAttempt; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DA'
+ name = 'getRestartAttemptCount' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DD'
+ name = 'getRestartAttemptCount' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DE'
+ language = 'Java' body = ' return mRestartAttemptCount; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DF'
+ name = 'getDevices' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the devices.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E4'
+ name = 'getDevices' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E5'
+ language = 'Java' body = ' synchronized (mDevices) { return mDevices.toArray(new Device[mDevices.size()]); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E6'
+ name = 'hasInitialDeviceList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E9'
+ name = 'hasInitialDeviceList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EA'
+ language = 'Java' body = ' return mInitialDeviceListDone; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EB'
+ name = 'getServer' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024ED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EE'
+ name = 'getServer' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EF'
+ language = 'Java' body = ' return mServer; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F0'
+ name = 'addClientToDropAndReopen' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F3'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F4'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F5'
+ name = 'addClientToDropAndReopen' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F6'
+ language = 'Java' body = ' synchronized (mClientsToReopen) { Log.d("DeviceMonitor", "Adding " + client + " to list of client to reopen (" + port +")."); if (mClientsToReopen.get(client) == null) { mClientsToReopen.put(client, port); } } mSelector.wakeup(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F7'
+ name = 'deviceMonitorLoop' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Monitors the devices. This connects to the Debug Bridge</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FB'
+ name = 'deviceMonitorLoop' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FC'
+ language = 'Java' body = ' do { try { if (mMainAdbConnection == null) { Log.d("DeviceMonitor", "Opening adb connection"); mMainAdbConnection = openAdbConnection(); if (mMainAdbConnection == null) { mConnectionAttempt++; Log.e("DeviceMonitor", "Connection attempts: " + mConnectionAttempt); if (mConnectionAttempt > 10) { if (mServer.startAdb() == false) { mRestartAttemptCount++; Log.e("DeviceMonitor", "adb restart attempts: " + mRestartAttemptCount); } else { mRestartAttemptCount = 0; } } waitABit(); } else { Log.d("DeviceMonitor", "Connected to adb for device monitoring"); mConnectionAttempt = 0; } } if (mMainAdbConnection != null && mMonitoring == false) { mMonitoring = sendDeviceListMonitoringRequest(); } if (mMonitoring) { // read the length of the incoming message int length = readLength(mMainAdbConnection, mLengthBuffer); if (length >= 0) { // read the incoming message processIncomingDeviceData(length); // flag the fact that we have build the list at least once. mInitialDeviceListDone = true; } } } catch (AsynchronousCloseException ace) { // this happens because of a call to Quit. We do nothing, and the loop will break. } catch (IOException ioe) { if (mQuit == false) { Log.e("DeviceMonitor", "Adb connection Error:" + ioe.getMessage()); mMonitoring = false; if (mMainAdbConnection != null) { try { mMainAdbConnection.close(); } catch (IOException ioe2) { // we can safely ignore that one. } mMainAdbConnection = null; } } } } while (mQuit == false); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FD'
+ name = 'waitABit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002500'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sleeps for a little bit.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002501'
+ name = 'waitABit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002502'
+ language = 'Java' body = ' try { Thread.sleep(1000); } catch (InterruptedException e1) { } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002503'
+ name = 'openAdbConnection' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002506'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a connect socket if success, null otherwise
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002507'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Attempts to connect to the debug bridge server.
+@return a connect socket if success, null otherwise</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002505'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002508'
+ name = 'openAdbConnection' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002509'
+ language = 'Java' body = ' Log.d("DeviceMonitor", "Connecting to adb for Device List Monitoring..."); SocketChannel adbChannel = null; try { adbChannel = SocketChannel.open(AndroidDebugBridge.sSocketAddr); adbChannel.socket().setTcpNoDelay(true); } catch (IOException e) { } return adbChannel; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002503'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250A'
+ name = 'sendDeviceListMonitoringRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> * @throws IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+
+@return</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250F'
+ name = 'sendDeviceListMonitoringRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002510'
+ language = 'Java' body = ' byte[] request = AdbHelper.formAdbRequest("host:track-devices"); //$NON-NLS-1$ if (AdbHelper.write(mMainAdbConnection, request) == false) { Log.e("DeviceMonitor", "Sending Tracking request failed!"); mMainAdbConnection.close(); throw new IOException("Sending Tracking request failed!"); } AdbResponse resp = AdbHelper.readAdbResponse(mMainAdbConnection, false /* readDiagString */); if (resp.ioSuccess == false) { Log.e("DeviceMonitor", "Failed to read the adb response!"); mMainAdbConnection.close(); throw new IOException("Failed to read the adb response!"); } if (resp.okay == false) { // request was refused by adb! Log.e("DeviceMonitor", "adb refused request: " + resp.message); } return resp.okay; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002511'
+ name = 'processIncomingDeviceData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002515'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>length
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002516'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002517'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Processes an incoming device message from the socket
+@param socket
+@param length
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002513'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002514'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002518'
+ name = 'processIncomingDeviceData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002519'
+ language = 'Java' body = ' ArrayList<Device> list = new ArrayList<Device>(); if (length > 0) { byte[] buffer = new byte[length]; String result = read(mMainAdbConnection, buffer); String[] devices = result.split("\n"); // $NON-NLS-1$ for (String d : devices) { String[] param = d.split("\t"); // $NON-NLS-1$ if (param.length == 2) { // new adb uses only serial numbers to identify devices Device device = new Device(this, param[0] /*serialnumber*/, DeviceState.getState(param[1])); //add the device to the list list.add(device); } } } // now merge the new devices with the old ones. updateDevices(list); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002511'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251A'
+ name = 'updateDevices' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Updates the device list with the new items received from the monitoring service.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251D'
+ name = 'newList' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251F'
+ name = 'updateDevices' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002520'
+ language = 'Java' body = ' // because we are going to call mServer.deviceDisconnected which will acquire this lock // we lock it first, so that the AndroidDebugBridge lock is always locked first. synchronized (AndroidDebugBridge.getLock()) { synchronized (mDevices) { // For each device in the current list, we look for a matching the new list. // * if we find it, we update the current object with whatever new information // there is // (mostly state change, if the device becomes ready, we query for build info). // We also remove the device from the new list to mark it as "processed" // * if we do not find it, we remove it from the current list. // Once this is done, the new list contains device we aren't monitoring yet, so we // add them to the list, and start monitoring them. for (int d = 0 ; d < mDevices.size() ;) { Device device = mDevices.get(d); // look for a similar device in the new list. int count = newList.size(); boolean foundMatch = false; for (int dd = 0 ; dd < count ; dd++) { Device newDevice = newList.get(dd); // see if it matches in id and serial number. if (newDevice.getSerialNumber().equals(device.getSerialNumber())) { foundMatch = true; // update the state if needed. if (device.getState() != newDevice.getState()) { device.setState(newDevice.getState()); device.update(Device.CHANGE_STATE); // if the device just got ready/online, we need to start // monitoring it. if (device.isOnline()) { if (AndroidDebugBridge.getClientSupport() == true) { if (startMonitoringDevice(device) == false) { Log.e("DeviceMonitor", "Failed to start monitoring " + device.getSerialNumber()); } } if (device.getPropertyCount() == 0) { queryNewDeviceForInfo(device); } } } // remove the new device from the list since it's been used newList.remove(dd); break; } } if (foundMatch == false) { // the device is gone, we need to remove it, and keep current index // to process the next one. removeDevice(device); mServer.deviceDisconnected(device); } else { // process the next one d++; } } // at this point we should still have some new devices in newList, so we // process them. for (Device newDevice : newList) { // add them to the list mDevices.add(newDevice); mServer.deviceConnected(newDevice); // start monitoring them. if (AndroidDebugBridge.getClientSupport() == true) { if (newDevice.isOnline()) { startMonitoringDevice(newDevice); } } // look for their build info. if (newDevice.isOnline()) { queryNewDeviceForInfo(newDevice); } } } } newList.clear(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002521'
+ name = 'removeDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002523'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002524'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002525'
+ name = 'removeDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002526'
+ language = 'Java' body = ' device.clearClientList(); mDevices.remove(device); SocketChannel channel = device.getClientMonitoringSocket(); if (channel != null) { try { channel.close(); } catch (IOException e) { // doesn't really matter if the close fails. } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002521'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002527'
+ name = 'queryNewDeviceForInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the device to query.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Queries a device for its build info.
+@param device the device to query.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002529'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252A'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252D'
+ name = 'queryNewDeviceForInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252E'
+ language = 'Java' body = ' // TODO: do this in a separate thread. try { // first get the list of properties. device.executeShellCommand(GetPropReceiver.GETPROP_COMMAND, new GetPropReceiver(device)); // now get the emulator Virtual Device name (if applicable). if (device.isEmulator()) { EmulatorConsole console = EmulatorConsole.getConsole(device); if (console != null) { device.setAvdName(console.getAvdName()); } } } catch (IOException e) { // if we can't get the build info, it doesn't matter too much } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002527'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252F'
+ name = 'startMonitoringDevice' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002533'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the device to monitor.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002534'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002535'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Starts a monitoring service for a device.
+@param device the device to monitor.
+@return true if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002531'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002532'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002536'
+ name = 'startMonitoringDevice' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002537'
+ language = 'Java' body = ' SocketChannel socketChannel = openAdbConnection(); if (socketChannel != null) { try { boolean result = sendDeviceMonitoringRequest(socketChannel, device); if (result) { if (mSelector == null) { startDeviceMonitorThread(); } device.setClientMonitoringSocket(socketChannel); synchronized (mDevices) { // always wakeup before doing the register. The synchronized block // ensure that the selector won't select() before the end of this block. // @see deviceClientMonitorLoop mSelector.wakeup(); socketChannel.configureBlocking(false); socketChannel.register(mSelector, SelectionKey.OP_READ, device); } return true; } } catch (IOException e) { try { // attempt to close the socket if needed. socketChannel.close(); } catch (IOException e1) { // we can ignore that one. It may already have been closed. } Log.d("DeviceMonitor", "Connection Failure when starting to monitor device '" + device + "' : " + e.getMessage()); } } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000252F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253A'
+ name = 'startDeviceMonitorThread' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253D'
+ name = 'startDeviceMonitorThread' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253E'
+ language = 'Java' body = ' mSelector = Selector.open(); new Thread("Device Client Monitor") { //$NON-NLS-1$ @Override public void run() { deviceClientMonitorLoop(); } }.start(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253F'
+ name = 'deviceClientMonitorLoop' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002541'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002542'
+ name = 'deviceClientMonitorLoop' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002543'
+ language = 'Java' body = ' do { try { // This synchronized block stops us from doing the select() if a new // Device is being added. // @see startMonitoringDevice() synchronized (mDevices) { } int count = mSelector.select(); if (mQuit) { return; } synchronized (mClientsToReopen) { if (mClientsToReopen.size() > 0) { Set<Client> clients = mClientsToReopen.keySet(); MonitorThread monitorThread = MonitorThread.getInstance(); for (Client client : clients) { Device device = client.getDeviceImpl(); int pid = client.getClientData().getPid(); monitorThread.dropClient(client, false /* notify */); // This is kinda bad, but if we don't wait a bit, the client // will never answer the second handshake! waitABit(); int port = mClientsToReopen.get(client); if (port == IDebugPortProvider.NO_STATIC_PORT) { port = getNextDebuggerPort(); } Log.d("DeviceMonitor", "Reopening " + client); openClient(device, pid, port, monitorThread); device.update(Device.CHANGE_CLIENT_LIST); } mClientsToReopen.clear(); } } if (count == 0) { continue; } Set<SelectionKey> keys = mSelector.selectedKeys(); Iterator<SelectionKey> iter = keys.iterator(); while (iter.hasNext()) { SelectionKey key = iter.next(); iter.remove(); if (key.isValid() && key.isReadable()) { Object attachment = key.attachment(); if (attachment instanceof Device) { Device device = (Device)attachment; SocketChannel socket = device.getClientMonitoringSocket(); if (socket != null) { try { int length = readLength(socket, mLengthBuffer2); processIncomingJdwpData(device, socket, length); } catch (IOException ioe) { Log.d("DeviceMonitor", "Error reading jdwp list: " + ioe.getMessage()); socket.close(); // restart the monitoring of that device synchronized (mDevices) { if (mDevices.contains(device)) { Log.d("DeviceMonitor", "Restarting monitoring service for " + device); startMonitoringDevice(device); } } } } } } } } catch (IOException e) { if (mQuit == false) { } } } while (mQuit == false); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002544'
+ name = 'sendDeviceMonitoringRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002546'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002547'
+ name = 'socket' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002548'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002549'
+ name = 'sendDeviceMonitoringRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254A'
+ language = 'Java' body = ' AdbHelper.setDevice(socket, device); byte[] request = AdbHelper.formAdbRequest("track-jdwp"); //$NON-NLS-1$ if (AdbHelper.write(socket, request) == false) { Log.e("DeviceMonitor", "Sending jdwp tracking request failed!"); socket.close(); throw new IOException(); } AdbResponse resp = AdbHelper.readAdbResponse(socket, false /* readDiagString */); if (resp.ioSuccess == false) { Log.e("DeviceMonitor", "Failed to read the adb response!"); socket.close(); throw new IOException(); } if (resp.okay == false) { // request was refused by adb! Log.e("DeviceMonitor", "adb refused request: " + resp.message); } return resp.okay; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002544'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254B'
+ name = 'processIncomingJdwpData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254E'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254F'
+ name = 'monitorSocket' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002550'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002551'
+ name = 'processIncomingJdwpData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002552'
+ language = 'Java' body = ' if (length >= 0) { // array for the current pids. ArrayList<Integer> pidList = new ArrayList<Integer>(); // get the string data if there are any if (length > 0) { byte[] buffer = new byte[length]; String result = read(monitorSocket, buffer); // split each line in its own list and create an array of integer pid String[] pids = result.split("\n"); //$NON-NLS-1$ for (String pid : pids) { try { pidList.add(Integer.valueOf(pid)); } catch (NumberFormatException nfe) { // looks like this pid is not really a number. Lets ignore it. continue; } } } MonitorThread monitorThread = MonitorThread.getInstance(); // Now we merge the current list with the old one. // this is the same mechanism as the merging of the device list. // For each client in the current list, we look for a matching the pid in the new list. // * if we find it, we do nothing, except removing the pid from its list, // to mark it as "processed" // * if we do not find any match, we remove the client from the current list. // Once this is done, the new list contains pids for which we don't have clients yet, // so we create clients for them, add them to the list, and start monitoring them. List<Client> clients = device.getClientList(); boolean changed = false; // because MonitorThread#dropClient acquires first the monitorThread lock and then the // Device client list lock (when removing the Client from the list), we have to make // sure we acquire the locks in the same order, since another thread (MonitorThread), // could call dropClient itself. synchronized (monitorThread) { synchronized (clients) { for (int c = 0 ; c < clients.size() ;) { Client client = clients.get(c); int pid = client.getClientData().getPid(); // look for a matching pid Integer match = null; for (Integer matchingPid : pidList) { if (pid == matchingPid.intValue()) { match = matchingPid; break; } } if (match != null) { pidList.remove(match); c++; // move on to the next client. } else { // we need to drop the client. the client will remove itself from the // list of its device which is 'clients', so there's no need to // increment c. // We ask the monitor thread to not send notification, as we'll do // it once at the end. monitorThread.dropClient(client, false /* notify */); changed = true; } } } } // at this point whatever pid is left in the list needs to be converted into Clients. for (int newPid : pidList) { openClient(device, newPid, getNextDebuggerPort(), monitorThread); changed = true; } if (changed) { mServer.deviceChanged(device, Device.CHANGE_CLIENT_LIST); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002553'
+ name = 'openClient' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Opens and creates a new client.
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002555'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002556'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002557'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002558'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002559'
+ name = 'monitorThread' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255C'
+ name = 'openClient' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255D'
+ language = 'Java' body = ' SocketChannel clientSocket; try { clientSocket = AdbHelper.createPassThroughConnection( AndroidDebugBridge.sSocketAddr, device, pid); // required for Selector clientSocket.configureBlocking(false); } catch (UnknownHostException uhe) { Log.d("DeviceMonitor", "Unknown Jdwp pid: " + pid); return; } catch (IOException ioe) { Log.w("DeviceMonitor", "Failed to connect to client '" + pid + "': " + ioe.getMessage()); return ; } createClient(device, pid, clientSocket, port, monitorThread); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002553'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255E'
+ name = 'createClient' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002566'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitorThread the {@link MonitorThread} object.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002567'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a client and register it to the monitor thread
+@param device
+@param pid
+@param socket
+@param debuggerPort the debugger port.
+@param monitorThread the {@link MonitorThread} object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002560'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002561'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002562'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002563'
+ name = 'socket' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002564'
+ name = 'debuggerPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002565'
+ name = 'monitorThread' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002568'
+ name = 'createClient' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002569'
+ language = 'Java' body = ' /* * Successfully connected to something. Create a Client object, add * it to the list, and initiate the JDWP handshake. */ Client client = new Client(device, socket, pid); if (client.sendHandshake()) { try { if (AndroidDebugBridge.getClientSupport()) { client.listenForDebugger(debuggerPort); } } catch (IOException ioe) { client.getClientData().setDebuggerConnectionStatus(DebuggerStatus.ERROR); Log.e("ddms", "Can't bind to local " + debuggerPort + " for debugger"); // oh well } client.requestAllocationStatus(); } else { Log.e("ddms", "Handshake with " + client + " failed!"); /* * The handshake send failed. We could remove it now, but if the * failure is "permanent" we'll just keep banging on it and * getting the same result. Keep it in the list with its "error" * state so we don't try to reopen it. */ } if (client.isValid()) { device.addClient(client); monitorThread.addClient(client); } else { client = null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256A'
+ name = 'getNextDebuggerPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256D'
+ name = 'getNextDebuggerPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256E'
+ language = 'Java' body = ' // get the first port and remove it synchronized (mDebuggerPorts) { if (mDebuggerPorts.size() > 0) { int port = mDebuggerPorts.get(0); // remove it. mDebuggerPorts.remove(0); // if there's nothing left, add the next port to the list if (mDebuggerPorts.size() == 0) { mDebuggerPorts.add(port+1); } return port; } } return -1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256F'
+ name = 'addPortToAvailableList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002571'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002572'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002573'
+ name = 'addPortToAvailableList' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002574'
+ language = 'Java' body = ' if (port > 0) { synchronized (mDebuggerPorts) { // because there could be case where clients are closed twice, we have to make // sure the port number is not already in the list. if (mDebuggerPorts.indexOf(port) == -1) { // add the port to the list while keeping it sorted. It's not like there's // going to be tons of objects so we do it linearly. int count = mDebuggerPorts.size(); for (int i = 0 ; i < count ; i++) { if (port < mDebuggerPorts.get(i)) { mDebuggerPorts.add(i, port); break; } } // TODO: check if we can compact the end of the list. } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002575'
+ name = 'readLength' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>socket The {@link SocketChannel} to read from.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the length, or 0 (zero) if no data is available from the socket.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException if the connection failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads the length of the next message from a socket.
+@param socket The {@link SocketChannel} to read from.
+@return the length, or 0 (zero) if no data is available from the socket.
+@throws IOException if the connection failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002577'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002578'
+ name = 'socket' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002579'
+ name = 'buffer' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257E'
+ name = 'readLength' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000257F'
+ language = 'Java' body = ' String msg = read(socket, buffer); if (msg != null) { try { return Integer.parseInt(msg, 16); } catch (NumberFormatException nfe) { // we'll throw an exception below. } } // we receive something we can't read. It's better to reset the connection at this point. throw new IOException("Unable to read length"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002575'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002580'
+ name = 'read' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002585'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>buffer
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002586'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the content of the buffer as a string, or null if it failed to convert the buffer.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002587'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002588'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Fills a buffer from a socket.
+@param socket
+@param buffer
+@return the content of the buffer as a string, or null if it failed to convert the buffer.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002582'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002583'
+ name = 'socket' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002584'
+ name = 'buffer' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002589'
+ name = 'read' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258A'
+ language = 'Java' body = ' ByteBuffer buf = ByteBuffer.wrap(buffer, 0, buffer.length); while (buf.position() != buf.limit()) { int count; count = socket.read(buf); if (count < 0) { throw new IOException("EOF"); } } try { return new String(buffer, 0, buf.position(), AdbHelper.DEFAULT_ENCODING); } catch (UnsupportedEncodingException e) { // we'll return null below. } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002580'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7D'
+ name = 'HandleHello.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258D'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258C'
+ name = 'HandleHello.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258D'
+ name = 'HandleHello.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7F'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7E'
+ name = 'HandleHello' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F80'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle the "hello" chunk (HELO) and feature discovery.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258F'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002590'
+ name = 'CHUNK_HELO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002593'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002594'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002595'
+ language = 'Java' body = ' ChunkHandler.type("HELO")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002596'
+ name = 'CHUNK_FEAT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002599'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259B'
+ language = 'Java' body = ' ChunkHandler.type("FEAT")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259C'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000259F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A1'
+ language = 'Java' body = ' new HandleHello()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A2'
+ name = 'HandleHello' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A4'
+ name = 'HandleHello' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A5'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A6'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A9'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AB'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AC'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_HELO, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AD'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B0'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B2'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B3'
+ language = 'Java' body = ' Log.d("ddm-hello", "Now ready: " + client); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B4'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B7'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B9'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BA'
+ language = 'Java' body = ' Log.d("ddm-hello", "Now disconnected: " + client); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BB'
+ name = 'sendHelloCommands' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>serverProtocolVersion
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends HELLO-type commands to the VM after a good handshake.
+@param client
+@param serverProtocolVersion
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BE'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BF'
+ name = 'serverProtocolVersion' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C3'
+ name = 'sendHelloCommands' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C4'
+ language = 'Java' body = ' sendHELO(client, serverProtocolVersion); sendFEAT(client); HandleProfiling.sendMPRQ(client); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C5'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C8'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C9'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CA'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CB'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CC'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CE'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025CF'
+ language = 'Java' body = ' Log.d("ddm-hello", "handling " + ChunkHandler.name(type)); if (type == CHUNK_HELO) { assert isReply; handleHELO(client, data); } else if (type == CHUNK_FEAT) { handleFEAT(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D0'
+ name = 'handleHELO' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D3'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D4'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D5'
+ name = 'handleHELO' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D6'
+ language = 'Java' body = ' int version, pid, vmIdentLen, appNameLen; String vmIdent, appName; version = data.getInt(); pid = data.getInt(); vmIdentLen = data.getInt(); appNameLen = data.getInt(); vmIdent = getString(data, vmIdentLen); appName = getString(data, appNameLen); Log.d("ddm-hello", "HELO: v=" + version + ", pid=" + pid + ", vm='" + vmIdent + "', app='" + appName + "'"); ClientData cd = client.getClientData(); synchronized (cd) { if (cd.getPid() == pid) { cd.setVmIdentifier(vmIdent); cd.setClientDescription(appName); cd.isDdmAware(true); } else { Log.e("ddm-hello", "Received pid (" + pid + ") does not match client pid (" + cd.getPid() + ")"); } } client = checkDebuggerPortForAppName(client, appName); if (client != null) { client.update(Client.CHANGE_NAME); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D7'
+ name = 'sendHELO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a HELO request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DA'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DB'
+ name = 'serverProtocolVersion' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DD'
+ name = 'sendHELO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DE'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(4); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(serverProtocolVersion); finishChunkPacket(packet, CHUNK_HELO, buf.position()); Log.d("ddm-hello", "Sending " + name(CHUNK_HELO) + " ID=0x" + Integer.toHexString(packet.getId())); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DF'
+ name = 'handleFEAT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle a reply to our FEAT request.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E2'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E3'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E5'
+ name = 'handleFEAT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E6'
+ language = 'Java' body = ' int featureCount; int i; featureCount = data.getInt(); for (i = 0; i < featureCount; i++) { int len = data.getInt(); String feature = getString(data, len); client.getClientData().addFeature(feature); Log.d("ddm-hello", "Feature: " + feature); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025DF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E7'
+ name = 'sendFEAT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025EB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a FEAT request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025EA'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025EC'
+ name = 'sendFEAT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025ED'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_FEAT, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_FEAT)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F81'
+ name = 'HandleTest.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025EF'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F0'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F1'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025EF'
+ name = 'HandleTest.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F81'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F0'
+ name = 'HandleTest.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F81'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F1'
+ name = 'HandleTest.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F81'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F83'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F82'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F82'
+ name = 'HandleTest' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F84'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle thread status updates.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F3'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F4'
+ name = 'CHUNK_TEST' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F9'
+ language = 'Java' body = ' type("TEST")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FA'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025FF'
+ language = 'Java' body = ' new HandleTest()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F82'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002600'
+ name = 'HandleTest' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002602'
+ name = 'HandleTest' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002603'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002600'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002604'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002608'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002606'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002607'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002609'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260A'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_TEST, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002604'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260B'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260E'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002610'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002611'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002612'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002616'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002614'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002615'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002617'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002618'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002612'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002619'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002621'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261C'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261D'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261E'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261F'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002620'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002622'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002623'
+ language = 'Java' body = ' Log.d("ddm-test", "handling " + ChunkHandler.name(type)); if (type == CHUNK_TEST) { handleTEST(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002619'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002624'
+ name = 'handleTEST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002626'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002627'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002628'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002629'
+ name = 'handleTEST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262A'
+ language = 'Java' body = ' /* * Can't call data.array() on a read-only ByteBuffer, so we make * a copy. */ byte[] copy = new byte[data.limit()]; data.get(copy); Log.d("ddm-test", "Received:"); Log.hexDump("ddm-test", LogLevel.DEBUG, copy, 0, copy.length); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002624'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F85'
+ name = 'NativeAllocationInfo.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262F'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262D'
+ name = 'NativeAllocationInfo.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F85'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262E'
+ name = 'NativeAllocationInfo.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F85'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262F'
+ name = 'NativeAllocationInfo.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F85'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F87'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F86'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F86'
+ name = 'NativeAllocationInfo' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F88'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Stores native allocation information.
+ <p/>Contains number of allocations, their size and the stack trace.
+ <p/>Note: the ddmlib does not resolve the stack trace automatically. While this class provides
+ storage for resolved stack trace, this is merely for convenience.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002631'
+ name = 'FLAG_ZYGOTE_CHILD' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002634'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002635'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002636'
+ language = 'Java' body = ' (1<<31)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002637'
+ name = 'FLAG_MASK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263C'
+ language = 'Java' body = ' (FLAG_ZYGOTE_CHILD)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000263D'
+ name = 'sAllocFunctionFilter' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002640'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002641'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002642'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ list of alloc functions that are filtered out when attempting to display
+ a relevant method responsible for an allocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002643'
+ name = 'mSize' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002646'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002647'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002648'
+ name = 'mIsZygoteChild' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000264D'
+ name = 'mAllocations' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002650'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002651'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002652'
+ name = 'mStackCallAddresses' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002655'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002656'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002657'
+ language = 'Java' body = ' new ArrayList<Long>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002658'
+ name = 'mResolvedStackCall' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265D'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000265E'
+ name = 'mIsStackCallResolved' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002661'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002662'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002663'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002664'
+ name = 'NativeAllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002668'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>allocations the allocation count
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002669'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new {@link NativeAllocationInfo}.
+@param size The size of the allocations.
+@param allocations the allocation count</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002666'
+ name = 'size' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002667'
+ name = 'allocations' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266A'
+ name = 'NativeAllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266B'
+ language = 'Java' body = ' this.mSize = size & ~FLAG_MASK; this.mIsZygoteChild = ((size & FLAG_ZYGOTE_CHILD) != 0); this.mAllocations = allocations; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002664'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266C'
+ name = 'addStackCallAddress' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002670'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>address The address to add.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002671'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a stack call address for this allocation.
+@param address The address to add.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266F'
+ name = 'address' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002672'
+ name = 'addStackCallAddress' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002673'
+ language = 'Java' body = ' mStackCallAddresses.add(address); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002674'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002677'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the total size of this allocation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002676'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002678'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002679'
+ language = 'Java' body = ' return mSize; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002674'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267A'
+ name = 'isZygoteChild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the allocation happened in a child of the zygote
+ process.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267E'
+ name = 'isZygoteChild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267F'
+ language = 'Java' body = ' return mIsZygoteChild; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002680'
+ name = 'getAllocationCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002683'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the allocation count.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002682'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002684'
+ name = 'getAllocationCount' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002685'
+ language = 'Java' body = ' return mAllocations; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002680'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002686'
+ name = 'isStackCallResolved' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002689'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the stack call addresses have been resolved into
+ {@link NativeStackCallInfo} objects.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002688'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268A'
+ name = 'isStackCallResolved' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268B'
+ language = 'Java' body = ' return mIsStackCallResolved; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002686'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268C'
+ name = 'getStackCallAddresses' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002690'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the list of addresses where the allocation happened.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002691'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the stack call of this allocation as raw addresses.
+@return the list of addresses where the allocation happened.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002692'
+ name = 'getStackCallAddresses' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002693'
+ language = 'Java' body = ' return mStackCallAddresses.toArray(new Long[mStackCallAddresses.size()]); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002694'
+ name = 'setResolvedStackCall' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002698'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>resolvedStackCall The list of {@link NativeStackCallInfo}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002699'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the resolved stack call for this allocation.
+ <p/>
+ If <code>resolvedStackCall</code> is non <code>null</code> then
+ {@link #isStackCallResolved()} will return <code>true</code> after this call.
+@param resolvedStackCall The list of {@link NativeStackCallInfo}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002696'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002697'
+ name = 'resolvedStackCall' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269A'
+ name = 'setResolvedStackCall' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269B'
+ language = 'Java' body = ' if (mResolvedStackCall == null) { mResolvedStackCall = new ArrayList<NativeStackCallInfo>(); } else { mResolvedStackCall.clear(); } mResolvedStackCall.addAll(resolvedStackCall); mIsStackCallResolved = mResolvedStackCall.size() != 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002694'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269C'
+ name = 'getResolvedStackCall' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>An array of {@link NativeStackCallInfo} or <code>null</code> if the stack call
+ was not resolved.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#isStackCallResolved()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the resolved stack call.
+@return An array of {@link NativeStackCallInfo} or <code>null</code> if the stack call
+ was not resolved.
+@see #setResolvedStackCall(ArrayList)
+@see #isStackCallResolved()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A3'
+ name = 'getResolvedStackCall' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A4'
+ language = 'Java' body = ' if (mIsStackCallResolved) { return mResolvedStackCall.toArray(new NativeStackCallInfo[mResolvedStackCall.size()]); } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A5'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>obj the reference object with which to compare.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if this object is equal to the obj argument;
+ <code>false</code> otherwise.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Object#equals(java.lang.Object)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Indicates whether some other object is "equal to" this one.
+@param obj the reference object with which to compare.
+@return <code>true</code> if this object is equal to the obj argument;
+ <code>false</code> otherwise.
+@see java.lang.Object#equals(java.lang.Object)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A8'
+ name = 'obj' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AD'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AE'
+ language = 'Java' body = ' if (obj == this) return true; if (obj instanceof NativeAllocationInfo) { NativeAllocationInfo mi = (NativeAllocationInfo)obj; // quick compare of size, alloc, and stackcall size if (mSize != mi.mSize || mAllocations != mi.mAllocations || mStackCallAddresses.size() != mi.mStackCallAddresses.size()) { return false; } // compare the stack addresses int count = mStackCallAddresses.size(); for (int i = 0 ; i < count ; i++) { long a = mStackCallAddresses.get(i); long b = mi.mStackCallAddresses.get(i); if (a != b) { return false; } } return true; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AF'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Object#toString()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a string representation of the object.
+@see java.lang.Object#toString()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B4'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B5'
+ language = 'Java' body = ' StringBuffer buffer = new StringBuffer(); buffer.append("Allocations: "); buffer.append(mAllocations); buffer.append("\n"); //$NON-NLS-1$ buffer.append("Size: "); buffer.append(mSize); buffer.append("\n"); //$NON-NLS-1$ buffer.append("Total Size: "); buffer.append(mSize * mAllocations); buffer.append("\n"); //$NON-NLS-1$ Iterator<Long> addrIterator = mStackCallAddresses.iterator(); Iterator<NativeStackCallInfo> sourceIterator = mResolvedStackCall.iterator(); while (sourceIterator.hasNext()) { long addr = addrIterator.next(); NativeStackCallInfo source = sourceIterator.next(); if (addr == 0) continue; if (source.getLineNumber() != -1) { buffer.append(String.format("\t%1$08x\t%2$s --- %3$s --- %4$s:%5$d\n", addr, source.getLibraryName(), source.getMethodName(), source.getSourceFile(), source.getLineNumber())); } else { buffer.append(String.format("\t%1$08x\t%2$s --- %3$s --- %4$s\n", addr, source.getLibraryName(), source.getMethodName(), source.getSourceFile())); } } return buffer.toString(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026AF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B6'
+ name = 'getRelevantStackCallInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a <code>NativeStackCallInfo</code> or <code>null</code> if the stack call has not
+ been processed from the raw addresses.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#isStackCallResolved()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the first {@link NativeStackCallInfo} that is relevant.
+ <p/>
+ A relevant <code>NativeStackCallInfo</code> is a stack call that is not deep in the
+ lower level of the libc, but the actual method that performed the allocation.
+@return a <code>NativeStackCallInfo</code> or <code>null</code> if the stack call has not
+ been processed from the raw addresses.
+@see #setResolvedStackCall(ArrayList)
+@see #isStackCallResolved()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F68'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BC'
+ name = 'getRelevantStackCallInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BD'
+ language = 'Java' body = ' if (mIsStackCallResolved && mResolvedStackCall != null) { Iterator<NativeStackCallInfo> sourceIterator = mResolvedStackCall.iterator(); Iterator<Long> addrIterator = mStackCallAddresses.iterator(); while (sourceIterator.hasNext() && addrIterator.hasNext()) { long addr = addrIterator.next(); NativeStackCallInfo info = sourceIterator.next(); if (addr != 0 && info != null) { if (isRelevant(info.getMethodName())) { return info; } } } // couldnt find a relevant one, so we'll return the first one if it // exists. if (mResolvedStackCall.size() > 0) return mResolvedStackCall.get(0); } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BE'
+ name = 'isRelevant' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>methodName the method name to test.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the method name is relevant.
+@param methodName the method name to test.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C1'
+ name = 'methodName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C4'
+ name = 'isRelevant' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C5'
+ language = 'Java' body = ' for (String filter : sAllocFunctionFilter) { if (methodName.contains(filter)) { return false; } } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F89'
+ name = 'AllocationInfo.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8B'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8A'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8A'
+ name = 'AllocationInfo' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CA'/>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CB'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Holds an Allocation information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CC'
+ name = 'mAllocatedClass' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D1'
+ name = 'mAllocationSize' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D6'
+ name = 'mThreadId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086D'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DB'
+ name = 'mStackTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026DF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E0'
+ name = 'AllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E2'
+ name = 'allocatedClass' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E3'
+ name = 'allocationSize' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E4'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E5'
+ name = 'stackTrace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E6'
+ name = 'AllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E7'
+ language = 'Java' body = ' mAllocatedClass = allocatedClass; mAllocationSize = allocationSize; mThreadId = threadId; mStackTrace = stackTrace; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E8'
+ name = 'getAllocatedClass' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the allocated class.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EC'
+ name = 'getAllocatedClass' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026ED'
+ language = 'Java' body = ' return mAllocatedClass; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EE'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the size of the allocation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F2'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F3'
+ language = 'Java' body = ' return mAllocationSize; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F4'
+ name = 'getThreadId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the id of the thread that performed the allocation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F8'
+ name = 'getThreadId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F9'
+ language = 'Java' body = ' return mThreadId; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FA'
+ name = 'getStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FD'
+ name = 'getStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FE'
+ language = 'Java' body = ' return mStackTrace; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FF'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002701'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002702'
+ name = 'otherAlloc' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002703'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002704'
+ language = 'Java' body = ' return otherAlloc.mAllocationSize - mAllocationSize; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8D'
+ name = 'HandleProfiling.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002707'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002709'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002707'
+ name = 'HandleProfiling.java -> IMethodProfilingHandler' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002706'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002709'
+ name = 'HandleProfiling.java -> MethodProfilingStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002708'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270A'
+ name = 'HandleProfiling.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270B'
+ name = 'HandleProfiling.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8F'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8E'
+ name = 'HandleProfiling' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F90'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle heap status updates.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270D'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270E'
+ name = 'CHUNK_MPRS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002711'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002712'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002713'
+ language = 'Java' body = ' type("MPRS")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002714'
+ name = 'CHUNK_MPRE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002717'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002718'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002719'
+ language = 'Java' body = ' type("MPRE")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271A'
+ name = 'CHUNK_MPSS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000271F'
+ language = 'Java' body = ' type("MPSS")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002720'
+ name = 'CHUNK_MPSE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002723'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002724'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002725'
+ language = 'Java' body = ' type("MPSE")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002726'
+ name = 'CHUNK_MPRQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002729'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272B'
+ language = 'Java' body = ' type("MPRQ")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272C'
+ name = 'CHUNK_FAIL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000272F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002730'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002731'
+ language = 'Java' body = ' type("FAIL")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002732'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002735'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002736'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002737'
+ language = 'Java' body = ' new HandleProfiling()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002738'
+ name = 'HandleProfiling' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273A'
+ name = 'HandleProfiling' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273B'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002738'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273C'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002740'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273F'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002741'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002742'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_MPRE, mInst); mt.registerChunkHandler(CHUNK_MPSE, mInst); mt.registerChunkHandler(CHUNK_MPRQ, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002743'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002747'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002745'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002746'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002748'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002749'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002743'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274A'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274D'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274F'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002750'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002751'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002759'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002753'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002754'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002755'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002756'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002757'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002758'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275A'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275B'
+ language = 'Java' body = ' Log.d("ddm-prof", "handling " + ChunkHandler.name(type)); if (type == CHUNK_MPRE) { handleMPRE(client, data); } else if (type == CHUNK_MPSE) { handleMPSE(client, data); } else if (type == CHUNK_MPRQ) { handleMPRQ(client, data); } else if (type == CHUNK_FAIL) { handleFAIL(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002751'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275C'
+ name = 'sendMPRS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002763'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>flags see startMethodTracing() docs; use 0 for default behavior
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002764'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a MPRS (Method PRofiling Start) request to the client.
+
+ The arguments to this method will eventually be passed to
+ android.os.Debug.startMethodTracing() on the device.
+
+@param fileName is the name of the file to which profiling data
+ will be written (on the device); it will have ".trace"
+ appended if necessary
+@param bufferSize is the desired buffer size in bytes (8MB is good)
+@param flags see startMethodTracing() docs; use 0 for default behavior</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275F'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002760'
+ name = 'fileName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002761'
+ name = 'bufferSize' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002762'
+ name = 'flags' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002765'
+ name = 'sendMPRS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002766'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(3*4 + fileName.length() * 2); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(bufferSize); buf.putInt(flags); buf.putInt(fileName.length()); putString(buf, fileName); finishChunkPacket(packet, CHUNK_MPRS, buf.position()); Log.d("ddm-prof", "Sending " + name(CHUNK_MPRS) + " '" + fileName + "', size=" + bufferSize + ", flags=" + flags); client.sendAndConsume(packet, mInst); // record the filename we asked for. client.getClientData().setPendingMethodProfiling(fileName); // send a status query. this ensure that the status is properly updated if for some // reason starting the tracing failed. sendMPRQ(client); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002767'
+ name = 'sendMPRE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a MPRE (Method PRofiling End) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002769'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276A'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276C'
+ name = 'sendMPRE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276D'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_MPRE, buf.position()); Log.d("ddm-prof", "Sending " + name(CHUNK_MPRE)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002767'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276E'
+ name = 'handleMPRE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002773'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle notification that method profiling has finished writing
+ data to disk.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002770'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002771'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002772'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002774'
+ name = 'handleMPRE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002775'
+ language = 'Java' body = ' byte result; // get the filename and make the client not have pending HPROF dump anymore. String filename = client.getClientData().getPendingMethodProfiling(); client.getClientData().setPendingMethodProfiling(null); result = data.get(); // get the app-level handler for method tracing dump IMethodProfilingHandler handler = ClientData.getMethodProfilingHandler(); if (handler != null) { if (result == 0) { handler.onSuccess(filename, client); Log.d("ddm-prof", "Method profiling has finished"); } else { handler.onEndFailure(client, null /*message*/); Log.w("ddm-prof", "Method profiling has failed (check device log)"); } } client.getClientData().setMethodProfilingStatus(MethodProfilingStatus.OFF); client.update(Client.CHANGE_METHOD_PROFILING_STATUS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002776'
+ name = 'sendMPSS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>flags see startMethodTracing() docs; use 0 for default behavior
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a MPSS (Method Profiling Streaming Start) request to the client.
+
+ The arguments to this method will eventually be passed to
+ android.os.Debug.startMethodTracing() on the device.
+
+@param bufferSize is the desired buffer size in bytes (8MB is good)
+@param flags see startMethodTracing() docs; use 0 for default behavior</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002778'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002779'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277A'
+ name = 'bufferSize' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277B'
+ name = 'flags' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277E'
+ name = 'sendMPSS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000277F'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(2*4); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(bufferSize); buf.putInt(flags); finishChunkPacket(packet, CHUNK_MPSS, buf.position()); Log.d("ddm-prof", "Sending " + name(CHUNK_MPSS) + "', size=" + bufferSize + ", flags=" + flags); client.sendAndConsume(packet, mInst); // send a status query. this ensure that the status is properly updated if for some // reason starting the tracing failed. sendMPRQ(client); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002776'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002780'
+ name = 'sendMPSE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002784'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a MPSE (Method Profiling Streaming End) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002782'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002783'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002785'
+ name = 'sendMPSE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002786'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_MPSE, buf.position()); Log.d("ddm-prof", "Sending " + name(CHUNK_MPSE)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002780'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002787'
+ name = 'handleMPSE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle incoming profiling data. The MPSE packet includes the
+ complete .trace file.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002789'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278A'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278B'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278D'
+ name = 'handleMPSE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278E'
+ language = 'Java' body = ' IMethodProfilingHandler handler = ClientData.getMethodProfilingHandler(); if (handler != null) { byte[] stuff = new byte[data.capacity()]; data.get(stuff, 0, stuff.length); Log.d("ddm-prof", "got trace file, size: " + stuff.length + " bytes"); handler.onSuccess(stuff, client); } client.getClientData().setMethodProfilingStatus(MethodProfilingStatus.OFF); client.update(Client.CHANGE_METHOD_PROFILING_STATUS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002787'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278F'
+ name = 'sendMPRQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002793'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a MPRQ (Method PRofiling Query) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002791'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002792'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002794'
+ name = 'sendMPRQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002795'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_MPRQ, buf.position()); Log.d("ddm-prof", "Sending " + name(CHUNK_MPRQ)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000278F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002796'
+ name = 'handleMPRQ' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Receive response to query.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002798'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002799'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279A'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279C'
+ name = 'handleMPRQ' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279D'
+ language = 'Java' body = ' byte result; result = data.get(); if (result == 0) { client.getClientData().setMethodProfilingStatus(MethodProfilingStatus.OFF); Log.d("ddm-prof", "Method profiling is not running"); } else { client.getClientData().setMethodProfilingStatus(MethodProfilingStatus.ON); Log.d("ddm-prof", "Method profiling is running"); } client.update(Client.CHANGE_METHOD_PROFILING_STATUS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002796'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279E'
+ name = 'handleFAIL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A1'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A2'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A3'
+ name = 'handleFAIL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A4'
+ language = 'Java' body = ' /*int errorCode =*/ data.getInt(); int length = data.getInt() * 2; String message = null; if (length > 0) { byte[] messageBuffer = new byte[length]; data.get(messageBuffer, 0, length); message = new String(messageBuffer); } // this can be sent if // - MPRS failed (like wrong permission) // - MPSE failed for whatever reason String filename = client.getClientData().getPendingMethodProfiling(); if (filename != null) { // reset the pending file. client.getClientData().setPendingMethodProfiling(null); // and notify of failure IMethodProfilingHandler handler = ClientData.getMethodProfilingHandler(); if (handler != null) { handler.onStartFailure(client, message); } } else { // this is MPRE // notify of failure IMethodProfilingHandler handler = ClientData.getMethodProfilingHandler(); if (handler != null) { handler.onEndFailure(client, message); } } // send a query to know the current status try { sendMPRQ(client); } catch (IOException e) { Log.e("HandleProfiling", e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'
+ name = 'MonitorThread.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A6'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A7'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AB'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B1'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B2'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BD'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C0'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C1'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C6'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C7'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A6'
+ name = 'MonitorThread.java -> IDebugPortProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A7'
+ name = 'MonitorThread.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A8'
+ name = 'MonitorThread.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AB'
+ name = 'MonitorThread.java -> InetAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AE'
+ name = 'MonitorThread.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B1'
+ name = 'MonitorThread.java -> BufferOverflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B2'
+ name = 'MonitorThread.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B5'
+ name = 'MonitorThread.java -> CancelledKeyException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B8'
+ name = 'MonitorThread.java -> NotYetBoundException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B6'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B9'
+ name = 'MonitorThread.java -> SelectionKey' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BA'
+ name = 'MonitorThread.java -> Selector' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BD'
+ name = 'MonitorThread.java -> ServerSocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BE'
+ name = 'MonitorThread.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C0'
+ name = 'MonitorThread.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C1'
+ name = 'MonitorThread.java -> Collection' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C3'
+ name = 'MonitorThread.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C5'
+ name = 'MonitorThread.java -> HashSet' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E71'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C6'
+ name = 'MonitorThread.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C7'
+ name = 'MonitorThread.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F91'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F93'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'
+ name = 'MonitorThread' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F94'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Monitor open connections.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CB'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CC'
+ name = 'CLIENT_READY' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D1'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D2'
+ name = 'CLIENT_DISCONNECTED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D7'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027D8'
+ name = 'mQuit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DD'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027DE'
+ name = 'mClientList' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E3'
+ name = 'mSelector' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027E8'
+ name = 'mHandlerMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027EB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027EC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027ED'
+ name = 'mDebugSelectedChan' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F2'
+ name = 'mNewDebugSelectedPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027F7'
+ name = 'mDebugSelectedPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FC'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027FD'
+ name = 'mSelectedClient' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002800'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002801'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002802'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002803'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ "Selected" client setup to answer debugging connection to the mNewDebugSelectedPort port.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002804'
+ name = 'mInstance' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002807'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002808'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002809'
+ name = 'MonitorThread' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Generic constructor.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280C'
+ name = 'MonitorThread' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280D'
+ language = 'Java' body = ' super("Monitor"); mClientList = new ArrayList<Client>(); mHandlerMap = new HashMap<Integer, ChunkHandler>(); mNewDebugSelectedPort = DdmPreferences.getSelectedDebugPort(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002809'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280E'
+ name = 'createInstance' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002811'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates and return the singleton instance of the client monitor thread.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002810'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002812'
+ name = 'createInstance' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002813'
+ language = 'Java' body = ' return mInstance = new MonitorThread(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002814'
+ name = 'getInstance' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002817'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get singleton instance of the client monitor thread.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002816'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002818'
+ name = 'getInstance' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002819'
+ language = 'Java' body = ' return mInstance; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002814'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281A'
+ name = 'setDebugSelectedPort' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets or changes the port number for "debug selected".</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281D'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281F'
+ name = 'setDebugSelectedPort' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002820'
+ language = 'Java' body = ' if (mInstance == null) { return; } if (AndroidDebugBridge.getClientSupport() == false) { return; } if (mDebugSelectedChan != null) { Log.d("ddms", "Changing debug-selected port to " + port); mNewDebugSelectedPort = port; wakeup(); } else { // we set mNewDebugSelectedPort instead of mDebugSelectedPort so that it's automatically // opened on the first run loop. mNewDebugSelectedPort = port; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002821'
+ name = 'setSelectedClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002825'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>selectedClient the client. Can be null.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002826'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the client to accept debugger connection on the custom "Selected debug port".
+@param selectedClient the client. Can be null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002823'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002824'
+ name = 'selectedClient' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002827'
+ name = 'setSelectedClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002828'
+ language = 'Java' body = ' if (mInstance == null) { return; } if (mSelectedClient != selectedClient) { Client oldClient = mSelectedClient; mSelectedClient = selectedClient; if (oldClient != null) { oldClient.update(Client.CHANGE_PORT); } if (mSelectedClient != null) { mSelectedClient.update(Client.CHANGE_PORT); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002821'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002829'
+ name = 'getSelectedClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the client accepting debugger connection on the custom "Selected debug port".</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282D'
+ name = 'getSelectedClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282E'
+ language = 'Java' body = ' return mSelectedClient; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002829'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282F'
+ name = 'getRetryOnBadHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002832'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if we want to retry connections to clients if we get a bad
+ JDWP handshake back, "false" if we want to just mark them as bad and
+ leave them alone.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002831'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002833'
+ name = 'getRetryOnBadHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002834'
+ language = 'Java' body = ' return true; // TODO? make configurable '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002835'
+ name = 'getClients' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002838'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get an array of known clients.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002837'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002352'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002839'
+ name = 'getClients' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283A'
+ language = 'Java' body = ' synchronized (mClientList) { return mClientList.toArray(new Client[0]); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002835'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283B'
+ name = 'registerChunkHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002840'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register "handler" as the handler for type "type".</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283E'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283F'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002841'
+ name = 'registerChunkHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002842'
+ language = 'Java' body = ' if (mInstance == null) { return; } synchronized (mHandlerMap) { if (mHandlerMap.get(type) == null) { mHandlerMap.put(type, handler); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002843'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002846'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Watch for activity from clients and debuggers.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002845'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002847'
+ name = 'run' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002848'
+ language = 'Java' body = ' Log.d("ddms", "Monitor is up"); // create a selector try { mSelector = Selector.open(); } catch (IOException ioe) { Log.logAndDisplay(LogLevel.ERROR, "ddms", "Failed to initialize Monitor Thread: " + ioe.getMessage()); return; } while (!mQuit) { try { /* * sync with new registrations: we wait until addClient is done before going through * and doing mSelector.select() again. * @see {@link #addClient(Client)} */ synchronized (mClientList) { } // (re-)open the "debug selected" port, if it's not opened yet or // if the port changed. try { if (AndroidDebugBridge.getClientSupport()) { if ((mDebugSelectedChan == null || mNewDebugSelectedPort != mDebugSelectedPort) && mNewDebugSelectedPort != -1) { if (reopenDebugSelectedPort()) { mDebugSelectedPort = mNewDebugSelectedPort; } } } } catch (IOException ioe) { Log.e("ddms", "Failed to reopen debug port for Selected Client to: " + mNewDebugSelectedPort); Log.e("ddms", ioe); mNewDebugSelectedPort = mDebugSelectedPort; // no retry } int count; try { count = mSelector.select(); } catch (IOException ioe) { ioe.printStackTrace(); continue; } catch (CancelledKeyException cke) { continue; } if (count == 0) { // somebody called wakeup() ? // Log.i("ddms", "selector looping"); continue; } Set<SelectionKey> keys = mSelector.selectedKeys(); Iterator<SelectionKey> iter = keys.iterator(); while (iter.hasNext()) { SelectionKey key = iter.next(); iter.remove(); try { if (key.attachment() instanceof Client) { processClientActivity(key); } else if (key.attachment() instanceof Debugger) { processDebuggerActivity(key); } else if (key.attachment() instanceof MonitorThread) { processDebugSelectedActivity(key); } else { Log.e("ddms", "unknown activity key"); } } catch (Exception e) { // we don't want to have our thread be killed because of any uncaught // exception, so we intercept all here. Log.e("ddms", "Exception during activity from Selector."); Log.e("ddms", e); } } } catch (Exception e) { // we don't want to have our thread be killed because of any uncaught // exception, so we intercept all here. Log.e("ddms", "Exception MonitorThread.run()"); Log.e("ddms", e); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002843'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002849'
+ name = 'getDebugSelectedPort' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the port on which the selected client listen for debugger</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284D'
+ name = 'getDebugSelectedPort' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284E'
+ language = 'Java' body = ' return mDebugSelectedPort; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002849'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284F'
+ name = 'processClientActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002851'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002852'
+ name = 'key' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002853'
+ name = 'processClientActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002854'
+ language = 'Java' body = ' Client client = (Client)key.attachment(); try { if (key.isReadable() == false || key.isValid() == false) { Log.d("ddms", "Invalid key from " + client + ". Dropping client."); dropClient(client, true /* notify */); return; } client.read(); /* * See if we have a full packet in the buffer. It's possible we have * more than one packet, so we have to loop. */ JdwpPacket packet = client.getJdwpPacket(); while (packet != null) { if (packet.isDdmPacket()) { // unsolicited DDM request - hand it off assert !packet.isReply(); callHandler(client, packet, null); packet.consume(); } else if (packet.isReply() && client.isResponseToUs(packet.getId()) != null) { // reply to earlier DDM request ChunkHandler handler = client .isResponseToUs(packet.getId()); if (packet.isError()) client.packetFailed(packet); else if (packet.isEmpty()) Log.d("ddms", "Got empty reply for 0x" + Integer.toHexString(packet.getId()) + " from " + client); else callHandler(client, packet, handler); packet.consume(); client.removeRequestId(packet.getId()); } else { Log.v("ddms", "Forwarding client " + (packet.isReply() ? "reply" : "event") + " 0x" + Integer.toHexString(packet.getId()) + " to " + client.getDebugger()); client.forwardPacketToDebugger(packet); } // find next packet = client.getJdwpPacket(); } } catch (CancelledKeyException e) { // key was canceled probably due to a disconnected client before we could // read stuff coming from the client, so we drop it. dropClient(client, true /* notify */); } catch (IOException ex) { // something closed down, no need to print anything. The client is simply dropped. dropClient(client, true /* notify */); } catch (Exception ex) { Log.e("ddms", ex); /* close the client; automatically un-registers from selector */ dropClient(client, true /* notify */); if (ex instanceof BufferOverflowException) { Log.w("ddms", "Client data packet exceeded maximum buffer size " + client); } else { // don't know what this is, display it Log.e("ddms", ex); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002855'
+ name = 'callHandler' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002857'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002858'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002859'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285A'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285B'
+ name = 'callHandler' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285C'
+ language = 'Java' body = ' // on first DDM packet received, broadcast a "ready" message if (!client.ddmSeen()) broadcast(CLIENT_READY, client); ByteBuffer buf = packet.getPayload(); int type, length; boolean reply = true; type = buf.getInt(); length = buf.getInt(); if (handler == null) { // not a reply, figure out who wants it synchronized (mHandlerMap) { handler = mHandlerMap.get(type); reply = false; } } if (handler == null) { Log.w("ddms", "Received unsupported chunk type " + ChunkHandler.name(type) + " (len=" + length + ")"); } else { Log.d("ddms", "Calling handler for " + ChunkHandler.name(type) + " [" + handler + "] (len=" + length + ")"); ByteBuffer ibuf = buf.slice(); ByteBuffer roBuf = ibuf.asReadOnlyBuffer(); // enforce R/O roBuf.order(ChunkHandler.CHUNK_ORDER); // do the handling of the chunk synchronized on the client list // to be sure there's no concurrency issue when we look for HOME // in hasApp() synchronized (mClientList) { handler.handleChunk(client, type, roBuf, reply, packet.getId()); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002855'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285D'
+ name = 'dropClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002862'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>notify
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002863'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Drops a client from the monitor.
+ <p/>This will lock the {@link Client} list of the {@link Device} running <var>client</var>.
+@param client
+@param notify</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002860'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002861'
+ name = 'notify' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002864'
+ name = 'dropClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002865'
+ language = 'Java' body = ' if (mInstance == null) { return; } synchronized (mClientList) { if (mClientList.remove(client) == false) { return; } } client.close(notify); broadcast(CLIENT_DISCONNECTED, client); /* * http://forum.java.sun.com/thread.jspa?threadID=726715&start=0 * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5073504 */ wakeup(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002866'
+ name = 'processDebuggerActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002868'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002869'
+ name = 'key' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286A'
+ name = 'processDebuggerActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286B'
+ language = 'Java' body = ' Debugger dbg = (Debugger)key.attachment(); try { if (key.isAcceptable()) { try { acceptNewDebugger(dbg, null); } catch (IOException ioe) { Log.w("ddms", "debugger accept() failed"); ioe.printStackTrace(); } } else if (key.isReadable()) { processDebuggerData(key); } else { Log.d("ddm-debugger", "key in unknown state"); } } catch (CancelledKeyException cke) { // key has been cancelled we can ignore that. } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002866'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286C'
+ name = 'acceptNewDebugger' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286F'
+ name = 'dbg' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002870'
+ name = 'acceptChan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002871'
+ name = 'acceptNewDebugger' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002872'
+ language = 'Java' body = ' synchronized (mClientList) { SocketChannel chan; if (acceptChan == null) chan = dbg.accept(); else chan = dbg.accept(acceptChan); if (chan != null) { chan.socket().setTcpNoDelay(true); wakeup(); try { chan.register(mSelector, SelectionKey.OP_READ, dbg); } catch (IOException ioe) { // failed, drop the connection dbg.closeData(); throw ioe; } catch (RuntimeException re) { // failed, drop the connection dbg.closeData(); throw re; } } else { Log.w("ddms", "ignoring duplicate debugger"); // new connection already closed } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002873'
+ name = 'processDebuggerData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002875'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002876'
+ name = 'key' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002877'
+ name = 'processDebuggerData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002878'
+ language = 'Java' body = ' Debugger dbg = (Debugger)key.attachment(); try { /* * Read pending data. */ dbg.read(); /* * See if we have a full packet in the buffer. It's possible we have * more than one packet, so we have to loop. */ JdwpPacket packet = dbg.getJdwpPacket(); while (packet != null) { Log.v("ddms", "Forwarding dbg req 0x" + Integer.toHexString(packet.getId()) + " to " + dbg.getClient()); dbg.forwardPacketToClient(packet); packet = dbg.getJdwpPacket(); } } catch (IOException ioe) { /* * Close data connection; automatically un-registers dbg from * selector. The failure could be caused by the debugger going away, * or by the client going away and failing to accept our data. * Either way, the debugger connection does not need to exist any * longer. We also need to recycle the connection to the client, so * that the VM sees the debugger disconnect. For a DDM-aware client * this won't be necessary, and we can just send a "debugger * disconnected" message. */ Log.d("ddms", "Closing connection to debugger " + dbg); dbg.closeData(); Client client = dbg.getClient(); if (client.isDdmAware()) { // TODO: soft-disconnect DDM-aware clients Log.d("ddms", " (recycling client connection as well)"); // we should drop the client, but also attempt to reopen it. // This is done by the DeviceMonitor. client.getDeviceImpl().getMonitor().addClientToDropAndReopen(client, IDebugPortProvider.NO_STATIC_PORT); } else { Log.d("ddms", " (recycling client connection as well)"); // we should drop the client, but also attempt to reopen it. // This is done by the DeviceMonitor. client.getDeviceImpl().getMonitor().addClientToDropAndReopen(client, IDebugPortProvider.NO_STATIC_PORT); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002873'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002879'
+ name = 'wakeup' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287C'
+ name = 'wakeup' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287D'
+ language = 'Java' body = ' mSelector.wakeup(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002879'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287E'
+ name = 'quit' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002881'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tell the thread to stop. Called from UI thread.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002880'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002882'
+ name = 'quit' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002883'
+ language = 'Java' body = ' mQuit = true; wakeup(); Log.d("ddms", "Waiting for Monitor thread"); try { this.join(); // since we're quitting, lets drop all the client and disconnect // the DebugSelectedPort synchronized (mClientList) { for (Client c : mClientList) { c.close(false /* notify */); broadcast(CLIENT_DISCONNECTED, c); } mClientList.clear(); } if (mDebugSelectedChan != null) { mDebugSelectedChan.close(); mDebugSelectedChan.socket().close(); mDebugSelectedChan = null; } mSelector.close(); } catch (InterruptedException ie) { ie.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mInstance = null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002884'
+ name = 'addClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002888'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Add a new Client to the list of things we monitor. Also adds the client's
+ channel and the client's debugger listener to the selection list. This
+ should only be called from one thread (the VMWatcherThread) to avoid a
+ race between "alreadyOpen" and Client creation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002886'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002887'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002889'
+ name = 'addClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288A'
+ language = 'Java' body = ' if (mInstance == null) { return; } Log.d("ddms", "Adding new client " + client); synchronized (mClientList) { mClientList.add(client); /* * Register the Client's socket channel with the selector. We attach * the Client to the SelectionKey. If you try to register a new * channel with the Selector while it is waiting for I/O, you will * block. The solution is to call wakeup() and then hold a lock to * ensure that the registration happens before the Selector goes * back to sleep. */ try { wakeup(); client.register(mSelector); Debugger dbg = client.getDebugger(); if (dbg != null) { dbg.registerListener(mSelector); } } catch (IOException ioe) { // not really expecting this to happen ioe.printStackTrace(); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002884'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288B'
+ name = 'broadcast' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288E'
+ name = 'event' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288F'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002890'
+ name = 'broadcast' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002891'
+ language = 'Java' body = ' Log.d("ddms", "broadcast " + event + ": " + client); /* * The handler objects appear once in mHandlerMap for each message they * handle. We want to notify them once each, so we convert the HashMap * to a HashSet before we iterate. */ HashSet<ChunkHandler> set; synchronized (mHandlerMap) { Collection<ChunkHandler> values = mHandlerMap.values(); set = new HashSet<ChunkHandler>(values); } Iterator<ChunkHandler> iter = set.iterator(); while (iter.hasNext()) { ChunkHandler handler = iter.next(); switch (event) { case CLIENT_READY: try { handler.clientReady(client); } catch (IOException ioe) { // Something failed with the client. It should // fall out of the list the next time we try to // do something with it, so we discard the // exception here and assume cleanup will happen // later. May need to propagate farther. The // trouble is that not all values for "event" may // actually throw an exception. Log.w("ddms", "Got exception while broadcasting 'ready'"); return; } break; case CLIENT_DISCONNECTED: handler.clientDisconnected(client); break; default: throw new UnsupportedOperationException(); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002892'
+ name = 'reopenDebugSelectedPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002895'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the port was opened successfully.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002896'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002897'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Opens (or reopens) the "debug selected" port and listen for connections.
+@return true if the port was opened successfully.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002894'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002898'
+ name = 'reopenDebugSelectedPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002899'
+ language = 'Java' body = ' Log.d("ddms", "reopen debug-selected port: " + mNewDebugSelectedPort); if (mDebugSelectedChan != null) { mDebugSelectedChan.close(); } mDebugSelectedChan = ServerSocketChannel.open(); mDebugSelectedChan.configureBlocking(false); // required for Selector InetSocketAddress addr = new InetSocketAddress( InetAddress.getByName("localhost"), //$NON-NLS-1$ mNewDebugSelectedPort); mDebugSelectedChan.socket().setReuseAddress(true); // enable SO_REUSEADDR try { mDebugSelectedChan.socket().bind(addr); if (mSelectedClient != null) { mSelectedClient.update(Client.CHANGE_PORT); } mDebugSelectedChan.register(mSelector, SelectionKey.OP_ACCEPT, this); return true; } catch (java.net.BindException e) { displayDebugSelectedBindError(mNewDebugSelectedPort); // do not attempt to reopen it. mDebugSelectedChan = null; mNewDebugSelectedPort = -1; return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002892'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289A'
+ name = 'processDebugSelectedActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289D'
+ name = 'key' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289E'
+ name = 'processDebugSelectedActivity' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289F'
+ language = 'Java' body = ' assert key.isAcceptable(); ServerSocketChannel acceptChan = (ServerSocketChannel)key.channel(); /* * Find the debugger associated with the currently-selected client. */ if (mSelectedClient != null) { Debugger dbg = mSelectedClient.getDebugger(); if (dbg != null) { Log.d("ddms", "Accepting connection on 'debug selected' port"); try { acceptNewDebugger(dbg, acceptChan); } catch (IOException ioe) { // client should be gone, keep going } return; } } Log.w("ddms", "Connection on 'debug selected' port, but none selected"); try { SocketChannel chan = acceptChan.accept(); chan.close(); } catch (IOException ioe) { // not expected; client should be gone, keep going } catch (NotYetBoundException e) { displayDebugSelectedBindError(mDebugSelectedPort); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A0'
+ name = 'displayDebugSelectedBindError' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A3'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A4'
+ name = 'displayDebugSelectedBindError' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A5'
+ language = 'Java' body = ' String message = String.format( "Could not open Selected VM debug port (%1$d). Make sure you do not have another instance of DDMS or of the eclipse plugin running. If it's being used by something else, choose a new port number in the preferences.", port); Log.logAndDisplay(LogLevel.ERROR, "ddms", message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F95'
+ name = 'NullOutputReceiver.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F97'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F96'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F96'
+ name = 'NullOutputReceiver' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A8'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F98'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Implementation of {@link IShellOutputReceiver} that does nothing.
+ <p/>This can be used to execute a remote shell command when the output is not needed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A9'
+ name = 'sReceiver' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AE'
+ language = 'Java' body = ' new NullOutputReceiver()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F96'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AF'
+ name = 'getReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B2'
+ name = 'getReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B3'
+ language = 'Java' body = ' return sReceiver; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028AF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B4'
+ name = 'addOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B7'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B8'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B9'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BA'
+ name = 'addOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BB'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BC'
+ name = 'flush' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BF'
+ name = 'flush' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C0'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C1'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C4'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C5'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F99'
+ name = 'RawImage.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C7'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C7'
+ name = 'RawImage.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F99'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9B'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'
+ name = 'RawImage' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Data representing an image taken from a device frame buffer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C9'
+ name = 'version' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028CE'
+ name = 'bpp' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D3'
+ name = 'size' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028D8'
+ name = 'width' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028DD'
+ name = 'height' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E2'
+ name = 'red_offset' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028E7'
+ name = 'red_length' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028EA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028EB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028EC'
+ name = 'blue_offset' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028EF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F1'
+ name = 'blue_length' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F6'
+ name = 'green_offset' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028F9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FB'
+ name = 'green_length' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002900'
+ name = 'alpha_offset' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002903'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002904'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002905'
+ name = 'alpha_length' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002908'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002909'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290A'
+ name = 'data' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290F'
+ name = 'readHeader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002914'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>buf the buffer to read from.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002915'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002916'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads the header of a RawImage from a {@link ByteBuffer}.
+ <p/>The way the data is sent over adb is defined in system/core/adb/framebuffer_service.c
+@param version the version of the protocol.
+@param buf the buffer to read from.
+@return true if success</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002911'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002912'
+ name = 'version' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002913'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002917'
+ name = 'readHeader' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002918'
+ language = 'Java' body = ' this.version = version; if (version == 16) { // compatibility mode with original protocol this.bpp = 16; // read actual values. this.size = buf.getInt(); this.width = buf.getInt(); this.height = buf.getInt(); // create default values for the rest. Format is 565 this.red_offset = 11; this.red_length = 5; this.green_offset = 5; this.green_length = 6; this.blue_offset = 0; this.blue_length = 5; this.alpha_offset = 0; this.alpha_length = 0; } else if (version == 1) { this.bpp = buf.getInt(); this.size = buf.getInt(); this.width = buf.getInt(); this.height = buf.getInt(); this.red_offset = buf.getInt(); this.red_length = buf.getInt(); this.blue_offset = buf.getInt(); this.blue_length = buf.getInt(); this.green_offset = buf.getInt(); this.green_length = buf.getInt(); this.alpha_offset = buf.getInt(); this.alpha_length = buf.getInt(); } else { // unsupported protocol! return false; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000290F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002919'
+ name = 'getRedMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the mask value for the red color.
+ <p/>This value is compatible with org.eclipse.swt.graphics.PaletteData</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291D'
+ name = 'getRedMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291E'
+ language = 'Java' body = ' return getMask(red_length, red_offset); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002919'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291F'
+ name = 'getGreenMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002922'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the mask value for the green color.
+ <p/>This value is compatible with org.eclipse.swt.graphics.PaletteData</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002921'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002923'
+ name = 'getGreenMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002924'
+ language = 'Java' body = ' return getMask(green_length, green_offset); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002925'
+ name = 'getBlueMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002928'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the mask value for the blue color.
+ <p/>This value is compatible with org.eclipse.swt.graphics.PaletteData</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002927'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002929'
+ name = 'getBlueMask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292A'
+ language = 'Java' body = ' return getMask(blue_length, blue_offset); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002925'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292B'
+ name = 'getHeaderSize' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>version the version of the protocol
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002930'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the number of int that makes up the header.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002931'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the size of the header for a specific version of the framebuffer adb protocol.
+@param version the version of the protocol
+@return the number of int that makes up the header.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292E'
+ name = 'version' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002932'
+ name = 'getHeaderSize' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002933'
+ language = 'Java' body = ' switch (version) { case 16: // compatibility mode return 3; // size, width, height case 1: return 12; // bpp, size, width, height, 4*(length, offset) } return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002934'
+ name = 'getRotated' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002937'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a rotated version of the image
+ The image is rotated counter-clockwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002936'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002938'
+ name = 'getRotated' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002939'
+ language = 'Java' body = ' RawImage rotated = new RawImage(); rotated.version = this.version; rotated.bpp = this.bpp; rotated.size = this.size; rotated.red_offset = this.red_offset; rotated.red_length = this.red_length; rotated.blue_offset = this.blue_offset; rotated.blue_length = this.blue_length; rotated.green_offset = this.green_offset; rotated.green_length = this.green_length; rotated.alpha_offset = this.alpha_offset; rotated.alpha_length = this.alpha_length; rotated.width = this.height; rotated.height = this.width; int count = this.data.length; rotated.data = new byte[count]; int byteCount = this.bpp >> 3; // bpp is in bits, we want bytes to match our array final int w = this.width; final int h = this.height; for (int y = 0 ; y < h ; y++) { for (int x = 0 ; x < w ; x++) { System.arraycopy( this.data, (y * w + x) * byteCount, rotated.data, ((w-x-1) * h + y) * byteCount, byteCount); } } return rotated; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002934'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293A'
+ name = 'getARGB' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an ARGB integer value for the pixel at <var>index</var> in {@link #data}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293D'
+ name = 'index' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293F'
+ name = 'getARGB' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002940'
+ language = 'Java' body = ' int value; if (bpp == 16) { value = data[index] & 0x00FF; value |= (data[index+1] << 8) & 0x0FF00; } else if (bpp == 32) { value = data[index] & 0x00FF; value |= (data[index+1] & 0x00FF) << 8; value |= (data[index+2] & 0x00FF) << 16; value |= (data[index+3] & 0x00FF) << 24; } else { throw new UnsupportedOperationException("RawImage.getARGB(int) only works in 16 and 32 bit mode."); } int r = ((value >>> red_offset) & getMask(red_length)) << (8 - red_length); int g = ((value >>> green_offset) & getMask(green_length)) << (8 - green_length); int b = ((value >>> blue_offset) & getMask(blue_length)) << (8 - blue_length); int a; if (alpha_length == 0) { a = 0xFF; // force alpha to opaque if there's no alpha value in the framebuffer. } else { a = ((value >>> alpha_offset) & getMask(alpha_length)) << (8 - alpha_length); } return a << 24 | r << 16 | g << 8 | b; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002941'
+ name = 'getMask' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002946'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ creates a mask value based on a length and offset.
+ <p/>This value is compatible with org.eclipse.swt.graphics.PaletteData</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002943'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002944'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002945'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002947'
+ name = 'getMask' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002948'
+ language = 'Java' body = ' int res = getMask(length) << offset; // if the bpp is 32 bits then we need to invert it because the buffer is in little endian if (bpp == 32) { return Integer.reverseBytes(res); } return res; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002941'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002949'
+ name = 'getMask' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>length
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a mask value based on a length.
+@param length
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294C'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002950'
+ name = 'getMask' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002951'
+ language = 'Java' body = ' int res = 0; for (int i = 0 ; i < length ; i++) { res = (res << 1) + 1; } return res; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002949'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'
+ name = 'EmulatorConsole.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002953'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002954'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002956'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002958'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002960'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002963'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002965'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002966'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002967'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002953'
+ name = 'EmulatorConsole.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002954'
+ name = 'EmulatorConsole.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002956'
+ name = 'EmulatorConsole.java -> InetAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002958'
+ name = 'EmulatorConsole.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295A'
+ name = 'EmulatorConsole.java -> UnknownHostException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002458'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295B'
+ name = 'EmulatorConsole.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295C'
+ name = 'EmulatorConsole.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002960'
+ name = 'EmulatorConsole.java -> InvalidParameterException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002963'
+ name = 'EmulatorConsole.java -> Calendar' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002962'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002965'
+ name = 'EmulatorConsole.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002966'
+ name = 'EmulatorConsole.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002967'
+ name = 'EmulatorConsole.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9D'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9F'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9E'
+ name = 'EmulatorConsole' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Provides control over emulated hardware of the Android emulator.
+ <p/>This is basically a wrapper around the command line console normally used with telnet.
+<p/>
+ Regarding line termination handling:<br>
+ One of the issues is that the telnet protocol <b>requires</b> usage of <code>\r\n</code>. Most
+ implementations don't enforce it (the dos one does). In this particular case, this is mostly
+ irrelevant since we don't use telnet in Java, but that means we want to make
+ sure we use the same line termination than what the console expects. The console
+ code removes <code>\r</code> and waits for <code>\n</code>.
+ <p/>However this means you <i>may</i> receive <code>\r\n</code> when reading from the console.
+ <p/>
+ <b>This API will change in the near future.</b></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'
+ name = 'GsmMode' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Gsm Mode enum. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA4'
+ name = 'UNKNOWN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA9'
+ name = 'UNREGISTERED' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FAE'
+ name = 'HOME' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB3'
+ name = 'ROAMING' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FB8'
+ name = 'SEARCHING' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FBD'
+ name = 'DENIED' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029FF'
+ name = 'tags' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A02'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A03'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A04'
+ name = 'GsmMode' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A06'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A07'
+ name = 'GsmMode' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A08'
+ language = 'Java' body = ' if (tag != null) { this.tags = new String[] { tag }; } else { this.tags = new String[0]; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A04'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A09'
+ name = 'GsmMode' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0B'
+ name = 'tags' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0C'
+ name = 'GsmMode' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0D'
+ language = 'Java' body = ' this.tags = tags; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A09'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0E'
+ name = 'getEnum' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A10'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A11'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A12'
+ name = 'getEnum' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A13'
+ language = 'Java' body = ' for (GsmMode mode : values()) { for (String t : mode.tags) { if (t.equals(tag)) { return mode; } } } return UNKNOWN; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A14'
+ name = 'getTag' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A17'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the first tag of the enum.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A16'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A18'
+ name = 'getTag' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A19'
+ language = 'Java' body = ' if (tags.length > 0) { return tags[0]; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A14'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC2'
+ name = 'GsmStatus' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Gsm Status class *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A45'
+ name = 'voice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A48'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A49'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4A'
+ language = 'Java' body = ' GsmMode.UNKNOWN'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Voice status. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4C'
+ name = 'data' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A4F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A50'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A51'
+ language = 'Java' body = ' GsmMode.UNKNOWN'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Data status. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC4'
+ name = 'NetworkStatus' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Network Status class *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A54'
+ name = 'speed' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A57'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A58'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A59'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> network speed status. This is an index in the {@link #DOWNLOAD_SPEEDS} array. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5B'
+ name = 'latency' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A60'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A61'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> network latency status. This is an index in the {@link #MIN_LATENCIES} array. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002969'
+ name = 'DEFAULT_ENCODING' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296E'
+ language = 'Java' body = ' "ISO-8859-1"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000296F'
+ name = 'WAIT_TIME' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002972'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002973'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002974'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002975'
+ name = 'STD_TIMEOUT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002978'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002979'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297A'
+ language = 'Java' body = ' 5000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297B'
+ name = 'HOST' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000297F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002980'
+ language = 'Java' body = ' "127.0.0.1"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002981'
+ name = 'COMMAND_PING' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002984'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002985'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002986'
+ language = 'Java' body = ' "help\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002987'
+ name = 'COMMAND_AVD_NAME' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298C'
+ language = 'Java' body = ' "avd name\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000298D'
+ name = 'COMMAND_KILL' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002990'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002991'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002992'
+ language = 'Java' body = ' "kill\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002993'
+ name = 'COMMAND_GSM_STATUS' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002996'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002997'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002998'
+ language = 'Java' body = ' "gsm status\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002999'
+ name = 'COMMAND_GSM_CALL' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299E'
+ language = 'Java' body = ' "gsm call %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000299F'
+ name = 'COMMAND_GSM_CANCEL_CALL' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A4'
+ language = 'Java' body = ' "gsm cancel %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A5'
+ name = 'COMMAND_GSM_DATA' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029A9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AA'
+ language = 'Java' body = ' "gsm data %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AB'
+ name = 'COMMAND_GSM_VOICE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B0'
+ language = 'Java' body = ' "gsm voice %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B1'
+ name = 'COMMAND_SMS_SEND' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B6'
+ language = 'Java' body = ' "sms send %1$s %2$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029B7'
+ name = 'COMMAND_NETWORK_STATUS' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BC'
+ language = 'Java' body = ' "network status\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029BD'
+ name = 'COMMAND_NETWORK_SPEED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C2'
+ language = 'Java' body = ' "network speed %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C3'
+ name = 'COMMAND_NETWORK_LATENCY' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C8'
+ language = 'Java' body = ' "network delay %1$s\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029C9'
+ name = 'COMMAND_GPS' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CE'
+ language = 'Java' body = ' "geo nmea $GPGGA,%1$02d%2$02d%3$02d.%4$03d," + //$NON-NLS-1$ "%5$03d%6$09.6f,%7$c,%8$03d%9$09.6f,%10$c," + //$NON-NLS-1$ "1,10,0.0,0.0,0,0.0,0,0.0,0000\r\n"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029CF'
+ name = 'RE_KO' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D4'
+ language = 'Java' body = ' Pattern.compile("KO:\\s+(.*)")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D6'
+ name = 'MIN_LATENCIES' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DB'
+ language = 'Java' body = ' new int[] { 0, // No delay 150, // gprs 80, // edge/egprs 35 // umts/3g }'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Array of delay values: no delay, gprs, edge/egprs, umts/3d</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029DD'
+ name = 'DOWNLOAD_SPEEDS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E2'
+ language = 'Java' body = ' new int[] { 0, // full speed 14400, // gsm 43200, // hscsd 80000, // gprs 236800, // edge/egprs 1920000, // umts/3g 14400000 // hsdpa }'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Array of download speeds: full speed, gsm, hscsd, gprs, edge/egprs, umts/3g, hsdpa.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E4'
+ name = 'NETWORK_SPEEDS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029E9'
+ language = 'Java' body = ' new String[] { "full", //$NON-NLS-1$ "gsm", //$NON-NLS-1$ "hscsd", //$NON-NLS-1$ "gprs", //$NON-NLS-1$ "edge", //$NON-NLS-1$ "umts", //$NON-NLS-1$ "hsdpa", //$NON-NLS-1$ }'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Arrays of valid network speeds *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029EB'
+ name = 'NETWORK_LATENCIES' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029EE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029EF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F0'
+ language = 'Java' body = ' new String[] { "none", //$NON-NLS-1$ "gprs", //$NON-NLS-1$ "edge", //$NON-NLS-1$ "umts", //$NON-NLS-1$ }'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Arrays of valid network latencies *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1A'
+ name = 'RESULT_OK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A1F'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A20'
+ name = 'sEmulatorRegexp' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A23'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A24'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A25'
+ language = 'Java' body = ' Pattern.compile(Device.RE_EMULATOR_SN)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A26'
+ name = 'sVoiceStatusRegexp' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2B'
+ language = 'Java' body = ' Pattern.compile( "gsm\\s+voice\\s+state:\\s*([a-z]+)", Pattern.CASE_INSENSITIVE)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2C'
+ name = 'sDataStatusRegexp' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A2F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A30'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A31'
+ language = 'Java' body = ' Pattern.compile( "gsm\\s+data\\s+state:\\s*([a-z]+)", Pattern.CASE_INSENSITIVE)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A32'
+ name = 'sDownloadSpeedRegexp' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A35'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A36'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A37'
+ language = 'Java' body = ' Pattern.compile( "\\s+download\\s+speed:\\s+(\\d+)\\s+bits.*", Pattern.CASE_INSENSITIVE)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A38'
+ name = 'sMinLatencyRegexp' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3D'
+ language = 'Java' body = ' Pattern.compile( "\\s+minimum\\s+latency:\\s+(\\d+)\\s+ms", Pattern.CASE_INSENSITIVE)'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A3E'
+ name = 'sEmulators' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A41'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A42'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A43'
+ language = 'Java' body = ' new HashMap<Integer, EmulatorConsole>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A62'
+ name = 'mPort' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A65'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A66'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A67'
+ name = 'mSocketChannel' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6C'
+ name = 'mBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A6F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A70'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A71'
+ language = 'Java' body = ' new byte[1024]'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A72'
+ name = 'getConsole' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A76'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>d The device that the console links to.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A77'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>an <code>EmulatorConsole</code> object or <code>null</code> if the connection failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A78'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an {@link EmulatorConsole} object for the given {@link Device}. This can
+ be an already existing console, or a new one if it hadn't been created yet.
+@param d The device that the console links to.
+@return an <code>EmulatorConsole</code> object or <code>null</code> if the connection failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A74'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A75'
+ name = 'd' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A79'
+ name = 'getConsole' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7A'
+ language = 'Java' body = ' // we need to make sure that the device is an emulator Matcher m = sEmulatorRegexp.matcher(d.getSerialNumber()); if (m.matches()) { // get the port number. This is the console port. int port; try { port = Integer.parseInt(m.group(1)); if (port <= 0) { return null; } } catch (NumberFormatException e) { // looks like we failed to get the port number. This is a bit strange since // it's coming from a regexp that only accept digit, but we handle the case // and return null. return null; } EmulatorConsole console = sEmulators.get(port); if (console != null) { // if the console exist, we ping the emulator to check the connection. if (console.ping() == false) { RemoveConsole(console.mPort); console = null; } } if (console == null) { // no console object exists for this port so we create one, and start // the connection. console = new EmulatorConsole(port); if (console.start()) { sEmulators.put(port, console); } else { console = null; } } return console; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A72'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7B'
+ name = 'RemoveConsole' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>port The port of the console to remove.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A80'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes the console object associated with a port from the map.
+@param port The port of the console to remove.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7E'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A81'
+ name = 'RemoveConsole' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A82'
+ language = 'Java' body = ' sEmulators.remove(port); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A83'
+ name = 'EmulatorConsole' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A85'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A86'
+ name = 'EmulatorConsole' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A87'
+ language = 'Java' body = ' super(); mPort = port; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A83'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A88'
+ name = 'start' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Starts the connection of the console.
+@return true if success.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8D'
+ name = 'start' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8E'
+ language = 'Java' body = ' InetSocketAddress socketAddr; try { InetAddress hostAddr = InetAddress.getByName(HOST); socketAddr = new InetSocketAddress(hostAddr, mPort); } catch (UnknownHostException e) { return false; } try { mSocketChannel = SocketChannel.open(socketAddr); } catch (IOException e1) { return false; } // read some stuff from it readLines(); return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A88'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8F'
+ name = 'ping' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A92'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the connection is alive.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A93'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Ping the emulator to check if the connection is still alive.
+@return true if the connection is alive.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A91'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A94'
+ name = 'ping' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A95'
+ language = 'Java' body = ' // it looks like we can send stuff, even when the emulator quit, but we can't read // from the socket. So we check the return of readLines() if (sendCommand(COMMAND_PING)) { return readLines() != null; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A8F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A96'
+ name = 'kill' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A99'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a KILL command to the emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A98'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9A'
+ name = 'kill' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9B'
+ language = 'Java' body = ' if (sendCommand(COMMAND_KILL)) { RemoveConsole(mPort); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A96'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9C'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9F'
+ name = 'getAvdName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA0'
+ language = 'Java' body = ' if (sendCommand(COMMAND_AVD_NAME)) { String[] result = readLines(); if (result != null && result.length == 2) { // this should be the name on first line, // and ok on 2nd line return result[0]; } else { // try to see if there's a message after KO Matcher m = RE_KO.matcher(result[result.length-1]); if (m.matches()) { return m.group(1); } } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA1'
+ name = 'getNetworkStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link NetworkStatus} object containing the {@link GsmStatus}, or
+ <code>null</code> if the query failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the network status of the emulator.
+@return a {@link NetworkStatus} object containing the {@link GsmStatus}, or
+ <code>null</code> if the query failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC4'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA6'
+ name = 'getNetworkStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA7'
+ language = 'Java' body = ' if (sendCommand(COMMAND_NETWORK_STATUS)) { /* Result is in the format Current network status: download speed: 14400 bits/s (1.8 KB/s) upload speed: 14400 bits/s (1.8 KB/s) minimum latency: 0 ms maximum latency: 0 ms */ String[] result = readLines(); if (isValid(result)) { // we only compare agains the min latency and the download speed // let's not rely on the order of the output, and simply loop through // the line testing the regexp. NetworkStatus status = new NetworkStatus(); for (String line : result) { Matcher m = sDownloadSpeedRegexp.matcher(line); if (m.matches()) { // get the string value String value = m.group(1); // get the index from the list status.speed = getSpeedIndex(value); // move on to next line. continue; } m = sMinLatencyRegexp.matcher(line); if (m.matches()) { // get the string value String value = m.group(1); // get the index from the list status.latency = getLatencyIndex(value); // move on to next line. continue; } } return status; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA8'
+ name = 'getGsmStatus' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link GsmStatus} object containing the gms status, or <code>null</code>
+ if the query failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the current gsm status of the emulator
+@return a {@link GsmStatus} object containing the gms status, or <code>null</code>
+ if the query failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAD'
+ name = 'getGsmStatus' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAE'
+ language = 'Java' body = ' if (sendCommand(COMMAND_GSM_STATUS)) { /* * result is in the format: * gsm status * gsm voice state: home * gsm data state: home */ String[] result = readLines(); if (isValid(result)) { GsmStatus status = new GsmStatus(); // let's not rely on the order of the output, and simply loop through // the line testing the regexp. for (String line : result) { Matcher m = sVoiceStatusRegexp.matcher(line); if (m.matches()) { // get the string value String value = m.group(1); // get the index from the list status.voice = GsmMode.getEnum(value.toLowerCase()); // move on to next line. continue; } m = sDataStatusRegexp.matcher(line); if (m.matches()) { // get the string value String value = m.group(1); // get the index from the list status.data = GsmMode.getEnum(value.toLowerCase()); // move on to next line. continue; } } return status; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAF'
+ name = 'setGsmVoiceMode' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>mode the {@link GsmMode} value.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>RESULT_OK if success, an error String otherwise.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidParameterException if mode is an invalid value.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the GSM voice mode.
+@param mode the {@link GsmMode} value.
+@return RESULT_OK if success, an error String otherwise.
+@throws InvalidParameterException if mode is an invalid value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB2'
+ name = 'mode' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB7'
+ name = 'setGsmVoiceMode' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB8'
+ language = 'Java' body = ' if (mode == GsmMode.UNKNOWN) { throw new InvalidParameterException(); } String command = String.format(COMMAND_GSM_VOICE, mode.getTag()); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AAF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB9'
+ name = 'setGsmDataMode' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>mode the {@link GsmMode} value
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidParameterException if mode is an invalid value.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the GSM data mode.
+@param mode the {@link GsmMode} value
+@return {@link #RESULT_OK} if success, an error String otherwise.
+@throws InvalidParameterException if mode is an invalid value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABC'
+ name = 'mode' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC1'
+ name = 'setGsmDataMode' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC2'
+ language = 'Java' body = ' if (mode == GsmMode.UNKNOWN) { throw new InvalidParameterException(); } String command = String.format(COMMAND_GSM_DATA, mode.getTag()); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC3'
+ name = 'call' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>number a string representing the calling number.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Initiate an incoming call on the emulator.
+@param number a string representing the calling number.
+@return {@link #RESULT_OK} if success, an error String otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC6'
+ name = 'number' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACA'
+ name = 'call' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACB'
+ language = 'Java' body = ' String command = String.format(COMMAND_GSM_CALL, number); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACC'
+ name = 'cancelCall' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>number the number of the call to cancel
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Cancels a current call.
+@param number the number of the call to cancel
+@return {@link #RESULT_OK} if success, an error String otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACF'
+ name = 'number' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD3'
+ name = 'cancelCall' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD4'
+ language = 'Java' body = ' String command = String.format(COMMAND_GSM_CANCEL_CALL, number); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD5'
+ name = 'sendSms' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message The SMS message. \ characters must be escaped. The carriage return is
+ the 2 character sequence {'\', 'n' }
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends an SMS to the emulator
+@param number The sender phone number
+@param message The SMS message. \ characters must be escaped. The carriage return is
+ the 2 character sequence {'\', 'n' }
+
+@return {@link #RESULT_OK} if success, an error String otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD8'
+ name = 'number' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD9'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADD'
+ name = 'sendSms' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADE'
+ language = 'Java' body = ' String command = String.format(COMMAND_SMS_SEND, number, message); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADF'
+ name = 'setNetworkSpeed' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>selectionIndex The index in the {@link #NETWORK_SPEEDS} table.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the network speed.
+@param selectionIndex The index in the {@link #NETWORK_SPEEDS} table.
+@return {@link #RESULT_OK} if success, an error String otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE2'
+ name = 'selectionIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE6'
+ name = 'setNetworkSpeed' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE7'
+ language = 'Java' body = ' String command = String.format(COMMAND_NETWORK_SPEED, NETWORK_SPEEDS[selectionIndex]); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ADF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE8'
+ name = 'setNetworkLatency' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AEC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>selectionIndex The index in the {@link #NETWORK_LATENCIES} table.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AED'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error String otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AEE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the network latency.
+@param selectionIndex The index in the {@link #NETWORK_LATENCIES} table.
+@return {@link #RESULT_OK} if success, an error String otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AEA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AEB'
+ name = 'selectionIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AEF'
+ name = 'setNetworkLatency' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF0'
+ language = 'Java' body = ' String command = String.format(COMMAND_NETWORK_LATENCY, NETWORK_LATENCIES[selectionIndex]); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF1'
+ name = 'sendLocation' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF4'
+ name = 'longitude' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF5'
+ name = 'latitude' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF6'
+ name = 'elevation' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF7'
+ name = 'sendLocation' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF8'
+ language = 'Java' body = ' Calendar c = Calendar.getInstance(); double absLong = Math.abs(longitude); int longDegree = (int)Math.floor(absLong); char longDirection = 'E'; if (longitude < 0) { longDirection = 'W'; } double longMinute = (absLong - Math.floor(absLong)) * 60; double absLat = Math.abs(latitude); int latDegree = (int)Math.floor(absLat); char latDirection = 'N'; if (latitude < 0) { latDirection = 'S'; } double latMinute = (absLat - Math.floor(absLat)) * 60; String command = String.format(COMMAND_GPS, c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), c.get(Calendar.SECOND), c.get(Calendar.MILLISECOND), latDegree, latMinute, latDirection, longDegree, longMinute, longDirection); return processCommand(command); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF9'
+ name = 'sendCommand' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>command The command string. <b>MUST BE TERMINATED BY \n</b>.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if success
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a command to the emulator console.
+@param command The command string. <b>MUST BE TERMINATED BY \n</b>.
+@return true if success</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFC'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B00'
+ name = 'sendCommand' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B01'
+ language = 'Java' body = ' boolean result = false; try { byte[] bCommand; try { bCommand = command.getBytes(DEFAULT_ENCODING); } catch (UnsupportedEncodingException e) { // wrong encoding... return result; } // write the command AdbHelper.write(mSocketChannel, bCommand, bCommand.length, DdmPreferences.getTimeOut()); result = true; } catch (IOException e) { return false; } finally { if (result == false) { // FIXME connection failed somehow, we need to disconnect the console. RemoveConsole(mPort); } } return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B02'
+ name = 'processCommand' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B06'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>command the command to send.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B07'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>{@link #RESULT_OK} if success, an error message otherwise.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B08'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a command to the emulator and parses its answer.
+@param command the command to send.
+@return {@link #RESULT_OK} if success, an error message otherwise.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B05'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B09'
+ name = 'processCommand' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0A'
+ language = 'Java' body = ' if (sendCommand(command)) { String[] result = readLines(); if (result != null && result.length > 0) { Matcher m = RE_KO.matcher(result[result.length-1]); if (m.matches()) { return m.group(1); } return RESULT_OK; } return "Unable to communicate with the emulator"; } return "Unable to send command to the emulator"; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B02'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0B'
+ name = 'readLines' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the array of strings read from the emulator.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads line from the console socket. This call is blocking until we read the lines:
+ <ul>
+ <li>OK\r\n</li>
+ <li>KO<msg>\r\n</li>
+ </ul>
+@return the array of strings read from the emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B10'
+ name = 'readLines' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B11'
+ language = 'Java' body = ' try { ByteBuffer buf = ByteBuffer.wrap(mBuffer, 0, mBuffer.length); int numWaits = 0; boolean stop = false; while (buf.position() != buf.limit() && stop == false) { int count; count = mSocketChannel.read(buf); if (count < 0) { return null; } else if (count == 0) { if (numWaits * WAIT_TIME > STD_TIMEOUT) { return null; } // non-blocking spin try { Thread.sleep(WAIT_TIME); } catch (InterruptedException ie) { } numWaits++; } else { numWaits = 0; } // check the last few char aren't OK. For a valid message to test // we need at least 4 bytes (OK/KO + \r\n) if (buf.position() >= 4) { int pos = buf.position(); if (endsWithOK(pos) || lastLineIsKO(pos)) { stop = true; } } } String msg = new String(mBuffer, 0, buf.position(), DEFAULT_ENCODING); return msg.split("\r\n"); //$NON-NLS-1$ } catch (IOException e) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B12'
+ name = 'endsWithOK' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B16'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>currentPosition The current position
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B17'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the 4 characters *before* the current position are "OK\r\n"
+@param currentPosition The current position</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B14'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B15'
+ name = 'currentPosition' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B18'
+ name = 'endsWithOK' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B19'
+ language = 'Java' body = ' if (mBuffer[currentPosition-1] == '\n' && mBuffer[currentPosition-2] == '\r' && mBuffer[currentPosition-3] == 'K' && mBuffer[currentPosition-4] == 'O') { return true; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B12'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1A'
+ name = 'lastLineIsKO' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>currentPosition the current position
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the last line starts with KO and is also terminated by \r\n
+@param currentPosition the current position</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1D'
+ name = 'currentPosition' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B20'
+ name = 'lastLineIsKO' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B21'
+ language = 'Java' body = ' // first check that the last 2 characters are CRLF if (mBuffer[currentPosition-1] != '\n' || mBuffer[currentPosition-2] != '\r') { return false; } // now loop backward looking for the previous CRLF, or the beginning of the buffer int i = 0; for (i = currentPosition-3 ; i >= 0; i--) { if (mBuffer[i] == '\n') { // found \n! if (i > 0 && mBuffer[i-1] == '\r') { // found \r! break; } } } // here it is either -1 if we reached the start of the buffer without finding // a CRLF, or the position of \n. So in both case we look at the characters at i+1 and i+2 if (mBuffer[i+1] == 'K' && mBuffer[i+2] == 'O') { // found error! return true; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B22'
+ name = 'isValid' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B26'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the last line of the result does not start with KO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B24'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B25'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B27'
+ name = 'isValid' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B28'
+ language = 'Java' body = ' if (result != null && result.length > 0) { return !(RE_KO.matcher(result[result.length-1]).matches()); } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B22'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B29'
+ name = 'getLatencyIndex' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2C'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2D'
+ name = 'getLatencyIndex' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2E'
+ language = 'Java' body = ' try { // get the int value int latency = Integer.parseInt(value); // check for the speed from the index for (int i = 0 ; i < MIN_LATENCIES.length; i++) { if (MIN_LATENCIES[i] == latency) { return i; } } } catch (NumberFormatException e) { // Do nothing, we'll just return -1. } return -1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B29'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2F'
+ name = 'getSpeedIndex' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B31'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B32'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B33'
+ name = 'getSpeedIndex' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B34'
+ language = 'Java' body = ' try { // get the int value int speed = Integer.parseInt(value); // check for the speed from the index for (int i = 0 ; i < DOWNLOAD_SPEEDS.length; i++) { if (DOWNLOAD_SPEEDS[i] == speed) { return i; } } } catch (NumberFormatException e) { // Do nothing, we'll just return -1. } return -1; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC6'
+ name = 'MultiLineReceiver.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B36'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B38'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B36'
+ name = 'MultiLineReceiver.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B38'
+ name = 'MultiLineReceiver.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC8'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'
+ name = 'MultiLineReceiver' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3A'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Base implementation of {@link IShellOutputReceiver}, that takes the raw data coming from the
+ socket, and convert it into {@link String} objects.
+ <p/>Additionally, it splits the string by lines.
+ <p/>Classes extending it must implement {@link #processNewLines(String[])} which receives
+ new parsed lines as they become available.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3B'
+ name = 'mTrimLines' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B40'
+ language = 'Java' body = ' true'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B41'
+ name = 'mUnfinishedLine' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B44'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B45'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B46'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B47'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> unfinished message line, stored for next packet *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B48'
+ name = 'mArray' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4D'
+ language = 'Java' body = ' new ArrayList<String>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4E'
+ name = 'setTrimLine' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>trim hether the lines are trimmed, or not.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B53'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Set the trim lines flag.
+@param trim hether the lines are trimmed, or not.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B50'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B51'
+ name = 'trim' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B54'
+ name = 'setTrimLine' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B55'
+ language = 'Java' body = ' mTrimLines = trim; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B56'
+ name = 'addOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B58'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B59'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5A'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5B'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5C'
+ name = 'addOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5D'
+ language = 'Java' body = ' if (isCancelled() == false) { String s = null; try { s = new String(data, offset, length, "ISO-8859-1"); //$NON-NLS-1$ } catch (UnsupportedEncodingException e) { // normal encoding didn't work, try the default one s = new String(data, offset,length); } // ok we've got a string if (s != null) { // if we had an unfinished line we add it. if (mUnfinishedLine != null) { s = mUnfinishedLine + s; mUnfinishedLine = null; } // now we split the lines mArray.clear(); int start = 0; do { int index = s.indexOf("\r\n", start); //$NON-NLS-1$ // if \r\n was not found, this is an unfinished line // and we store it to be processed for the next packet if (index == -1) { mUnfinishedLine = s.substring(start); break; } // so we found a \r\n; // extract the line String line = s.substring(start, index); if (mTrimLines) { line = line.trim(); } mArray.add(line); // move start to after the \r\n we found start = index + 2; } while (true); if (mArray.size() > 0) { // at this point we've split all the lines. // make the array String[] lines = mArray.toArray(new String[mArray.size()]); // send it for final processing processNewLines(lines); } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B56'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5E'
+ name = 'flush' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B60'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B61'
+ name = 'flush' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B62'
+ language = 'Java' body = ' if (mUnfinishedLine != null) { processNewLines(new String[] { mUnfinishedLine }); } done(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B63'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B66'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Terminates the process. This is called after the last lines have been through
+ {@link #processNewLines(String[])}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B65'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B67'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B68'
+ language = 'Java' body = ' // do nothing. '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B63'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B69'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B6D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>lines The array containing the new lines.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B6E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when new lines are being received by the remote process.
+ <p/>It is guaranteed that the lines are complete when they are given to this method.
+@param lines The array containing the new lines.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B6B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B6C'
+ name = 'lines' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCA'
+ name = 'DebugPortManager.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B70'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B70'
+ name = 'DebugPortManager.java -> Device' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCA'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCC'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCB'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCB'
+ name = 'DebugPortManager' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Centralized point to provide a {@link IDebugPortProvider} to ddmlib.
+
+ <p/>When {@link Client} objects are created, they start listening for debuggers on a specific
+ port. The default behavior is to start with {@link DdmPreferences#getDebugPortBase()} and
+ increment this value for each new <code>Client</code>.
+
+ <p/>This {@link DebugPortManager} allows applications using ddmlib to provide a custom
+ port provider on a per-<code>Client</code> basis, depending on the device/emulator they are
+ running on, and/or their names.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCE'
+ name = 'IDebugPortProvider' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide a method that provides a non random
+ debugger port for a newly created {@link Client}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B73'
+ name = 'NO_STATIC_PORT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B76'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B77'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B78'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B79'
+ name = 'getPort' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>appName The application name, as defined in the <code>AndroidManifest.xml</code>
+ <var>package</var> attribute of the <var>manifest</var> node.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>The non-random debugger port or {@link #NO_STATIC_PORT} if the {@link Client}
+ should use the automatic debugger port provider.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B80'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a non-random debugger port for the specified application running on the
+ specified {@link Device}.
+@param device The device the application is running on.
+@param appName The application name, as defined in the <code>AndroidManifest.xml</code>
+ <var>package</var> attribute of the <var>manifest</var> node.
+@return The non-random debugger port or {@link #NO_STATIC_PORT} if the {@link Client}
+ should use the automatic debugger port provider.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7C'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7D'
+ name = 'appName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B81'
+ name = 'sProvider' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B84'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B85'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B86'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCE'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B87'
+ name = 'setProvider' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>provider the <code>IDebugPortProvider</code> to use.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the {@link IDebugPortProvider} that will be used when a new {@link Client} requests
+ a debugger port.
+@param provider the <code>IDebugPortProvider</code> to use.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8A'
+ name = 'provider' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8D'
+ name = 'setProvider' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8E'
+ language = 'Java' body = ' sProvider = provider; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B87'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8F'
+ name = 'getProvider' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B92'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B93'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B91'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FCE'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B94'
+ name = 'getProvider' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B95'
+ language = 'Java' body = ' return sProvider; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B8F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD0'
+ name = 'HandleThread.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B97'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B98'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B97'
+ name = 'HandleThread.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD0'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B98'
+ name = 'HandleThread.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD0'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD2'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD1'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD1'
+ name = 'HandleThread' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle thread status updates.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9A'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD5'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2C'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD7'
+ name = '2' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C37'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9B'
+ name = 'CHUNK_THEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA0'
+ language = 'Java' body = ' type("THEN")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA1'
+ name = 'CHUNK_THCR' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA6'
+ language = 'Java' body = ' type("THCR")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BA7'
+ name = 'CHUNK_THDE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAC'
+ language = 'Java' body = ' type("THDE")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BAD'
+ name = 'CHUNK_THST' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB2'
+ language = 'Java' body = ' type("THST")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB3'
+ name = 'CHUNK_THNM' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB8'
+ language = 'Java' body = ' type("THNM")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BB9'
+ name = 'CHUNK_STKL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBE'
+ language = 'Java' body = ' type("STKL")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BBF'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC4'
+ language = 'Java' body = ' new HandleThread()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD1'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC5'
+ name = 'mThreadStatusReqRunning' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BC9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCA'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCB'
+ name = 'mThreadStackTraceReqRunning' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BCF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD0'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD1'
+ name = 'HandleThread' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD3'
+ name = 'HandleThread' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD4'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD5'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD8'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDA'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDB'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_THCR, mInst); mt.registerChunkHandler(CHUNK_THDE, mInst); mt.registerChunkHandler(CHUNK_THST, mInst); mt.registerChunkHandler(CHUNK_THNM, mInst); mt.registerChunkHandler(CHUNK_STKL, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDC'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDF'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE1'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE2'
+ language = 'Java' body = ' Log.d("ddm-thread", "Now ready: " + client); if (client.isThreadUpdateEnabled()) sendTHEN(client, true); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE3'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE6'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE8'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE9'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEA'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BED'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEE'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEF'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF0'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF1'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF3'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF4'
+ language = 'Java' body = ' Log.d("ddm-thread", "handling " + ChunkHandler.name(type)); if (type == CHUNK_THCR) { handleTHCR(client, data); } else if (type == CHUNK_THDE) { handleTHDE(client, data); } else if (type == CHUNK_THST) { handleTHST(client, data); } else if (type == CHUNK_THNM) { handleTHNM(client, data); } else if (type == CHUNK_STKL) { handleSTKL(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF5'
+ name = 'handleTHCR' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF8'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF9'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFA'
+ name = 'handleTHCR' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFB'
+ language = 'Java' body = ' int threadId, nameLen; String name; threadId = data.getInt(); nameLen = data.getInt(); name = getString(data, nameLen); Log.v("ddm-thread", "THCR: " + threadId + " '" + name + "'"); client.getClientData().addThread(threadId, name); client.update(Client.CHANGE_THREAD_DATA); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFC'
+ name = 'handleTHDE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFF'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C00'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C01'
+ name = 'handleTHDE' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C02'
+ language = 'Java' body = ' int threadId; threadId = data.getInt(); Log.v("ddm-thread", "THDE: " + threadId); client.getClientData().removeThread(threadId); client.update(Client.CHANGE_THREAD_DATA); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C03'
+ name = 'handleTHST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C06'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C07'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C08'
+ name = 'handleTHST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C09'
+ language = 'Java' body = ' int headerLen, bytesPerEntry, extraPerEntry; int threadCount; headerLen = (data.get() & 0xff); bytesPerEntry = (data.get() & 0xff); threadCount = data.getShort(); headerLen -= 4; // we've read 4 bytes while (headerLen-- > 0) data.get(); extraPerEntry = bytesPerEntry - 18; // we want 18 bytes Log.v("ddm-thread", "THST: threadCount=" + threadCount); /* * For each thread, extract the data, find the appropriate * client, and add it to the ClientData. */ for (int i = 0; i < threadCount; i++) { int threadId, status, tid, utime, stime; boolean isDaemon = false; threadId = data.getInt(); status = data.get(); tid = data.getInt(); utime = data.getInt(); stime = data.getInt(); if (bytesPerEntry >= 18) isDaemon = (data.get() != 0); Log.v("ddm-thread", " id=" + threadId + ", status=" + status + ", tid=" + tid + ", utime=" + utime + ", stime=" + stime); ClientData cd = client.getClientData(); ThreadInfo threadInfo = cd.getThread(threadId); if (threadInfo != null) threadInfo.updateThread(status, tid, utime, stime, isDaemon); else Log.d("ddms", "Thread with id=" + threadId + " not found"); // slurp up any extra for (int slurp = extraPerEntry; slurp > 0; slurp--) data.get(); } client.update(Client.CHANGE_THREAD_DATA); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C03'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0A'
+ name = 'handleTHNM' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0D'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0E'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0F'
+ name = 'handleTHNM' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C10'
+ language = 'Java' body = ' int threadId, nameLen; String name; threadId = data.getInt(); nameLen = data.getInt(); name = getString(data, nameLen); Log.v("ddm-thread", "THNM: " + threadId + " '" + name + "'"); ThreadInfo threadInfo = client.getClientData().getThread(threadId); if (threadInfo != null) { threadInfo.setThreadName(name); client.update(Client.CHANGE_THREAD_DATA); } else { Log.d("ddms", "Thread with id=" + threadId + " not found"); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C11'
+ name = 'handleSTKL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C16'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parse an incoming STKL.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C13'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C14'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C15'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C17'
+ name = 'handleSTKL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C18'
+ language = 'Java' body = ' StackTraceElement[] trace; int i, threadId, stackDepth; @SuppressWarnings("unused") int future; future = data.getInt(); threadId = data.getInt(); Log.v("ddms", "STKL: " + threadId); /* un-serialize the StackTraceElement[] */ stackDepth = data.getInt(); trace = new StackTraceElement[stackDepth]; for (i = 0; i < stackDepth; i++) { String className, methodName, fileName; int len, lineNumber; len = data.getInt(); className = getString(data, len); len = data.getInt(); methodName = getString(data, len); len = data.getInt(); if (len == 0) { fileName = null; } else { fileName = getString(data, len); } lineNumber = data.getInt(); trace[i] = new StackTraceElement(className, methodName, fileName, lineNumber); } ThreadInfo threadInfo = client.getClientData().getThread(threadId); if (threadInfo != null) { threadInfo.setStackCall(trace); client.update(Client.CHANGE_THREAD_STACKTRACE); } else { Log.d("STKL", String.format( "Got stackcall for thread %1$d, which does not exists (anymore?).", //$NON-NLS-1$ threadId)); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C11'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C19'
+ name = 'sendTHEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a THEN (THread notification ENable) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1C'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1D'
+ name = 'enable' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1F'
+ name = 'sendTHEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C20'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(1); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); if (enable) buf.put((byte)1); else buf.put((byte)0); finishChunkPacket(packet, CHUNK_THEN, buf.position()); Log.d("ddm-thread", "Sending " + name(CHUNK_THEN) + ": " + enable); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C19'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C21'
+ name = 'sendSTKL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C26'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a STKL (STacK List) request to the client. The VM will suspend
+ the target thread, obtain its stack, and return it. If the thread
+ is no longer running, a failure result will be returned.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C24'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C25'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C27'
+ name = 'sendSTKL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C28'
+ language = 'Java' body = ' if (false) { Log.d("ddm-thread", "would send STKL " + threadId); return; } ByteBuffer rawBuf = allocBuffer(4); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(threadId); finishChunkPacket(packet, CHUNK_STKL, buf.position()); Log.d("ddm-thread", "Sending " + name(CHUNK_STKL) + ": " + threadId); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C21'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2D'
+ name = 'requestThreadUpdate' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ This is called periodically from the UI thread. To avoid locking
+ the UI while we request the updates, we create a new thread.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C30'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C32'
+ name = 'requestThreadUpdate' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C33'
+ language = 'Java' body = ' if (client.isDdmAware() && client.isThreadUpdateEnabled()) { if (mThreadStatusReqRunning) { Log.w("ddms", "Waiting for previous thread update req to finish"); return; } new Thread("Thread Status Req") { @Override public void run() { mThreadStatusReqRunning = true; try { sendTHST(client); } catch (IOException ioe) { Log.d("ddms", "Unable to request thread updates from " + client + ": " + ioe.getMessage()); } finally { mThreadStatusReqRunning = false; } } }.start(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C38'
+ name = 'requestThreadStackCallRefresh' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3B'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3C'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3D'
+ name = 'requestThreadStackCallRefresh' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3E'
+ language = 'Java' body = ' if (client.isDdmAware() && client.isThreadUpdateEnabled()) { if (mThreadStackTraceReqRunning ) { Log.w("ddms", "Waiting for previous thread stack call req to finish"); return; } new Thread("Thread Status Req") { @Override public void run() { mThreadStackTraceReqRunning = true; try { sendSTKL(client, threadId); } catch (IOException ioe) { Log.d("ddms", "Unable to request thread stack call updates from " + client + ": " + ioe.getMessage()); } finally { mThreadStackTraceReqRunning = false; } } }.start(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C38'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3F'
+ name = 'sendTHST' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C42'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C43'
+ name = 'sendTHST' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C44'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // nothing much to say finishChunkPacket(packet, CHUNK_THST, buf.position()); Log.d("ddm-thread", "Sending " + name(CHUNK_THST)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C3F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD8'
+ name = 'Log.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C46'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C49'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C46'
+ name = 'Log.java -> PrintWriter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD8'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C49'
+ name = 'Log.java -> StringWriter' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD8'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C47'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FDA'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFF'
+ name = 'DdmPreferences.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D46'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D46'
+ name = 'DdmPreferences.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FFF'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002001'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140E'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002003'
+ name = 'HandleExit.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEF'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEE'
+ name = 'HandleExit.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002003'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DEF'
+ name = 'HandleExit.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002003'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002005'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002004'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002004'
+ name = 'HandleExit' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002006'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Submit an exit request.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF1'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF2'
+ name = 'CHUNK_EXIT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF7'
+ language = 'Java' body = ' type("EXIT")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF8'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFD'
+ language = 'Java' body = ' new HandleExit()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002004'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFE'
+ name = 'HandleExit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E00'
+ name = 'HandleExit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E01'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E02'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E06'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E05'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E07'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E08'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E02'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E09'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0C'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0E'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0F'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E09'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E10'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E14'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E12'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E13'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E15'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E16'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E10'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E17'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E19'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1A'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1B'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1C'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1D'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E1E'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E20'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E21'
+ language = 'Java' body = ' handleUnknownChunk(client, type, data, isReply, msgId); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E17'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E22'
+ name = 'sendEXIT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E27'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send an EXIT request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E24'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E25'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E26'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E28'
+ name = 'sendEXIT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E29'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(4); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(status); finishChunkPacket(packet, CHUNK_EXIT, buf.position()); Log.d("ddm-exit", "Sending " + name(CHUNK_EXIT) + ": " + status); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E22'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'
+ name = 'SyncService.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E32'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E35'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E38'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E39'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3F'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2B'
+ name = 'SyncService.java -> AdbResponse' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2D'
+ name = 'SyncService.java -> FileEntry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2E'
+ name = 'SyncService.java -> ArrayHelper' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2F'
+ name = 'SyncService.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E32'
+ name = 'SyncService.java -> FileInputStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E30'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E35'
+ name = 'SyncService.java -> FileNotFoundException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E33'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E38'
+ name = 'SyncService.java -> FileOutputStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E36'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E39'
+ name = 'SyncService.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3A'
+ name = 'SyncService.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3C'
+ name = 'SyncService.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3D'
+ name = 'SyncService.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3F'
+ name = 'SyncService.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002007'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002009'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002008'
+ name = 'SyncService' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sync service class to push/pull to/from devices/emulators, through the debug bridge.
+ <p/>
+ To get a {@link SyncService} object, use {@link Device#getSyncService()}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'
+ name = 'SyncResult' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A file transfer result.
+ <p/>
+ This contains a code, and an optional string</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F11'
+ name = 'mCode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F14'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F15'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F16'
+ name = 'mMessage' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F19'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1B'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1D'
+ name = 'code' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1E'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1F'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F20'
+ language = 'Java' body = ' mCode = code; mMessage = message; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F21'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F23'
+ name = 'code' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F25'
+ name = 'e' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F26'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F27'
+ language = 'Java' body = ' this(code, e.getMessage()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F21'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F28'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2A'
+ name = 'code' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2B'
+ name = 'SyncResult' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2C'
+ language = 'Java' body = ' this(code, errorCodeToString(code)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F28'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2D'
+ name = 'getCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F30'
+ name = 'getCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F31'
+ language = 'Java' body = ' return mCode; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F32'
+ name = 'getMessage' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F35'
+ name = 'getMessage' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F36'
+ language = 'Java' body = ' return mMessage; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F32'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'
+ name = 'ISyncProgressMonitor' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide methods that deal
+ with displaying transfer progress.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F38'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>totalWork the total amount of work.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when the transfer starts
+@param totalWork the total amount of work.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3B'
+ name = 'totalWork' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3E'
+ name = 'stop' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F41'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when the transfer is finished or interrupted.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F42'
+ name = 'isCanceled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the transfer should be stopped.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F46'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent to query for possible cancellation.
+@return true if the transfer should be stopped.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F44'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F47'
+ name = 'startSubTask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name the name of the sub task.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a sub task is started.
+@param name the name of the sub task.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4A'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4D'
+ name = 'advance' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F51'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>work the amount of work done.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when some progress have been made.
+@param work the amount of work done.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F50'
+ name = 'work' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200F'
+ name = 'NullSyncProgresMonitor' visibility = 'private' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F54'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002010'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A Sync progress monitor that does nothing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F55'
+ name = 'advance' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F58'
+ name = 'work' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F59'
+ name = 'advance' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5A'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F55'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5B'
+ name = 'isCanceled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5E'
+ name = 'isCanceled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5F'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F60'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F62'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F63'
+ name = 'totalWork' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F64'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F65'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F60'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F66'
+ name = 'startSubTask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F69'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6A'
+ name = 'startSubTask' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6B'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F66'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6C'
+ name = 'stop' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6F'
+ name = 'stop' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F70'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E41'
+ name = 'ID_OKAY' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E44'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E45'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E46'
+ language = 'Java' body = ' { 'O', 'K', 'A', 'Y' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E47'
+ name = 'ID_FAIL' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4C'
+ language = 'Java' body = ' { 'F', 'A', 'I', 'L' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E4D'
+ name = 'ID_STAT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E50'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E51'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E52'
+ language = 'Java' body = ' { 'S', 'T', 'A', 'T' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E53'
+ name = 'ID_RECV' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E56'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E57'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E58'
+ language = 'Java' body = ' { 'R', 'E', 'C', 'V' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E59'
+ name = 'ID_DATA' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5E'
+ language = 'Java' body = ' { 'D', 'A', 'T', 'A' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E5F'
+ name = 'ID_DONE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E62'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E63'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E64'
+ language = 'Java' body = ' { 'D', 'O', 'N', 'E' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E65'
+ name = 'ID_SEND' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E68'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E69'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6A'
+ language = 'Java' body = ' { 'S', 'E', 'N', 'D' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6B'
+ name = 'sNullSyncProgressMonitor' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E6F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E70'
+ language = 'Java' body = ' new NullSyncProgresMonitor()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E71'
+ name = 'S_ISOCK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E74'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E75'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E76'
+ language = 'Java' body = ' 0xC000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E77'
+ name = 'S_IFLNK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7C'
+ language = 'Java' body = ' 0xA000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E7D'
+ name = 'S_IFREG' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E82'
+ language = 'Java' body = ' 0x8000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E83'
+ name = 'S_IFBLK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E86'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E87'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E88'
+ language = 'Java' body = ' 0x6000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E89'
+ name = 'S_IFDIR' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8E'
+ language = 'Java' body = ' 0x4000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E8F'
+ name = 'S_IFCHR' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E92'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E93'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E94'
+ language = 'Java' body = ' 0x2000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E95'
+ name = 'S_IFIFO' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E98'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E99'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9A'
+ language = 'Java' body = ' 0x1000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9B'
+ name = 'SYNC_DATA_MAX' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E9F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA0'
+ language = 'Java' body = ' 64*1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA1'
+ name = 'REMOTE_PATH_MAX_LENGTH' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA6'
+ language = 'Java' body = ' 1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EA7'
+ name = 'RESULT_OK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAC'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for transfer success. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EAE'
+ name = 'RESULT_CANCELED' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB3'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for canceled transfer *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB5'
+ name = 'RESULT_UNKNOWN_ERROR' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EB9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBA'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for unknown error *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBC'
+ name = 'RESULT_CONNECTION_ERROR' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EBF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC1'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for network connection error *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC3'
+ name = 'RESULT_NO_REMOTE_OBJECT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC8'
+ language = 'Java' body = ' 4'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EC9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for unknown remote object during a pull *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECA'
+ name = 'RESULT_TARGET_IS_FILE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ECF'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code when attempting to pull multiple files into a file *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED1'
+ name = 'RESULT_NO_DIR_TARGET' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED6'
+ language = 'Java' body = ' 6'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code when attempting to pull multiple into a directory that does not exist. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ED8'
+ name = 'RESULT_REMOTE_PATH_ENCODING' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDD'
+ language = 'Java' body = ' 7'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for wrong encoding on the remote path. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EDF'
+ name = 'RESULT_REMOTE_PATH_LENGTH' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE4'
+ language = 'Java' body = ' 8'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for remote path that is too long. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE6'
+ name = 'RESULT_FILE_WRITE_ERROR' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EE9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EEA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EEB'
+ language = 'Java' body = ' 9'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EEC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for error while writing local file. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EED'
+ name = 'RESULT_FILE_READ_ERROR' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF2'
+ language = 'Java' body = ' 10'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for error while reading local file. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF4'
+ name = 'RESULT_NO_LOCAL_FILE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EF9'
+ language = 'Java' body = ' 11'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for attempting to push a file that does not exist. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFB'
+ name = 'RESULT_LOCAL_IS_DIRECTORY' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002EFF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F00'
+ language = 'Java' body = ' 12'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F01'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for attempting to push a directory. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F02'
+ name = 'RESULT_REMOTE_IS_FILE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F05'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F06'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F07'
+ language = 'Java' body = ' 13'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F08'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for when the target path of a multi file push is a file. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F09'
+ name = 'RESULT_BUFFER_OVERRUN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0E'
+ language = 'Java' body = ' 14'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Result code for receiving too much data from the remove device at once *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F71'
+ name = 'mAddress' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F74'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F75'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F76'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7B'
+ name = 'mChannel' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F7F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F80'
+ name = 'mBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F84'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F85'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Buffer used to send data. Allocated when needed and reused afterward.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F86'
+ name = 'SyncService' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device the {@link Device} that the service connects to.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a Sync service object.
+@param address The address to connect to
+@param device the {@link Device} that the service connects to.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F88'
+ name = 'address' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F89'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8C'
+ name = 'SyncService' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8D'
+ language = 'Java' body = ' mAddress = address; mDevice = device; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F86'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8E'
+ name = 'openSync' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F91'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the connection opened, false if adb refuse the connection. This can happen
+ if the {@link Device} is invalid.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F92'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException If the connection to adb failed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F93'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Opens the sync connection. This must be called before any calls to push[File] / pull[File].
+@return true if the connection opened, false if adb refuse the connection. This can happen
+ if the {@link Device} is invalid.
+@throws IOException If the connection to adb failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F90'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F94'
+ name = 'openSync' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F95'
+ language = 'Java' body = ' try { mChannel = SocketChannel.open(mAddress); mChannel.configureBlocking(false); // target a specific device AdbHelper.setDevice(mChannel, mDevice); byte[] request = AdbHelper.formAdbRequest("sync:"); // $NON-NLS-1$ AdbHelper.write(mChannel, request, -1, DdmPreferences.getTimeOut()); AdbResponse resp = AdbHelper.readAdbResponse(mChannel, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { Log.w("ddms", "Got timeout or unhappy response from ADB sync req: " + resp.message); mChannel.close(); mChannel = null; return false; } } catch (IOException e) { if (mChannel != null) { try { mChannel.close(); } catch (IOException e2) { // we want to throw the original exception, so we ignore this one. } mChannel = null; } throw e; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F96'
+ name = 'close' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F99'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Closes the connection.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F98'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9A'
+ name = 'close' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9B'
+ language = 'Java' body = ' if (mChannel != null) { try { mChannel.close(); } catch (IOException e) { // nothing to be done really... } mChannel = null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F96'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9C'
+ name = 'getNullProgressMonitor' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a sync progress monitor that does nothing. This allows background tasks that don't
+ want/need to display ui, to pass a valid {@link ISyncProgressMonitor}.
+ <p/>This object can be reused multiple times and can be used by concurrent threads.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA0'
+ name = 'getNullProgressMonitor' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA1'
+ language = 'Java' body = ' return sNullSyncProgressMonitor; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA2'
+ name = 'errorCodeToString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>code the error code;
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Converts an error code into a non-localized string
+@param code the error code;</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA5'
+ name = 'code' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA8'
+ name = 'errorCodeToString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA9'
+ language = 'Java' body = ' switch (code) { case RESULT_OK: return "Success."; case RESULT_CANCELED: return "Tranfert canceled by the user."; case RESULT_UNKNOWN_ERROR: return "Unknown Error."; case RESULT_CONNECTION_ERROR: return "Adb Connection Error."; case RESULT_NO_REMOTE_OBJECT: return "Remote object doesn't exist!"; case RESULT_TARGET_IS_FILE: return "Target object is a file."; case RESULT_NO_DIR_TARGET: return "Target directory doesn't exist."; case RESULT_REMOTE_PATH_ENCODING: return "Remote Path encoding is not supported."; case RESULT_REMOTE_PATH_LENGTH: return "Remove path is too long."; case RESULT_FILE_WRITE_ERROR: return "Writing local file failed!"; case RESULT_FILE_READ_ERROR: return "Reading local file failed!"; case RESULT_NO_LOCAL_FILE: return "Local file doesn't exist."; case RESULT_LOCAL_IS_DIRECTORY: return "Local path is a directory."; case RESULT_REMOTE_IS_FILE: return "Remote path is a file."; case RESULT_BUFFER_OVERRUN: return "Receiving too much data."; } throw new RuntimeException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAA'
+ name = 'pull' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor The progress monitor. Cannot be null.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getNullProgressMonitor()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pulls file(s) or folder(s).
+@param entries the remote item(s) to pull
+@param localPath The local destination. If the entries count is > 1 or
+ if the unique entry is a folder, this should be a folder.
+@param monitor The progress monitor. Cannot be null.
+@return a {@link SyncResult} object with a code and an optional message.
+
+@see FileListingService.FileEntry
+@see #getNullProgressMonitor()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAE'
+ name = 'entries' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAF'
+ name = 'localPath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB0'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB5'
+ name = 'pull' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB6'
+ language = 'Java' body = ' // first we check the destination is a directory and exists File f = new File(localPath); if (f.exists() == false) { return new SyncResult(RESULT_NO_DIR_TARGET); } if (f.isDirectory() == false) { return new SyncResult(RESULT_TARGET_IS_FILE); } // get a FileListingService object FileListingService fls = new FileListingService(mDevice); // compute the number of file to move int total = getTotalRemoteFileSize(entries, fls); // start the monitor monitor.start(total); SyncResult result = doPull(entries, localPath, fls, monitor); monitor.stop(); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB7'
+ name = 'pullFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor The progress monitor. Cannot be null.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getNullProgressMonitor()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pulls a single file.
+@param remote the remote file
+@param localFilename The local destination.
+@param monitor The progress monitor. Cannot be null.
+@return a {@link SyncResult} object with a code and an optional message.
+
+@see FileListingService.FileEntry
+@see #getNullProgressMonitor()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBA'
+ name = 'remote' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBB'
+ name = 'localFilename' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FBC'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC1'
+ name = 'pullFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC2'
+ language = 'Java' body = ' int total = remote.getSizeValue(); monitor.start(total); SyncResult result = doPullFile(remote.getFullPath(), localFilename, monitor); monitor.stop(); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC3'
+ name = 'pullFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor The progress monitor. Cannot be null.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getNullProgressMonitor()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pulls a single file.
+ <p/>Because this method just deals with a String for the remote file instead of a
+ {@link FileEntry}, the size of the file being pulled is unknown and the
+ {@link ISyncProgressMonitor} will not properly show the progress
+@param remoteFilepath the full path to the remote file
+@param localFilename The local destination.
+@param monitor The progress monitor. Cannot be null.
+@return a {@link SyncResult} object with a code and an optional message.
+
+@see #getNullProgressMonitor()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC6'
+ name = 'remoteFilepath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC7'
+ name = 'localFilename' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC8'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCD'
+ name = 'pullFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCE'
+ language = 'Java' body = ' monitor.start(0); //TODO: use the {@link FileListingService} to get the file size. SyncResult result = doPullFile(remoteFilepath, localFilename, monitor); monitor.stop(); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCF'
+ name = 'push' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor The progress monitor. Cannot be null.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Push several files.
+@param local An array of loca files to push
+@param remote the remote {@link FileEntry} representing a directory.
+@param monitor The progress monitor. Cannot be null.
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD2'
+ name = 'local' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD3'
+ name = 'remote' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD4'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD8'
+ name = 'push' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD9'
+ language = 'Java' body = ' if (remote.isDirectory() == false) { return new SyncResult(RESULT_REMOTE_IS_FILE); } // make a list of File from the list of String ArrayList<File> files = new ArrayList<File>(); for (String path : local) { files.add(new File(path)); } // get the total count of the bytes to transfer File[] fileArray = files.toArray(new File[files.size()]); int total = getTotalLocalFileSize(fileArray); monitor.start(total); SyncResult result = doPush(fileArray, remote.getFullPath(), monitor); monitor.stop(); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FCF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDA'
+ name = 'pushFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor The progress monitor. Cannot be null.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Push a single file.
+@param local the local filepath.
+@param remote The remote filepath.
+@param monitor The progress monitor. Cannot be null.
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDD'
+ name = 'local' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDE'
+ name = 'remote' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDF'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE3'
+ name = 'pushFile' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE4'
+ language = 'Java' body = ' File f = new File(local); if (f.exists() == false) { return new SyncResult(RESULT_NO_LOCAL_FILE); } if (f.isDirectory()) { return new SyncResult(RESULT_LOCAL_IS_DIRECTORY); } monitor.start((int)f.length()); SyncResult result = doPushFile(local, remote, monitor); monitor.stop(); return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE5'
+ name = 'getTotalRemoteFileSize' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>fls
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ compute the recursive file size of all the files in the list. Folder
+ have a weight of 1.
+@param entries
+@param fls
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE8'
+ name = 'entries' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE9'
+ name = 'fls' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FED'
+ name = 'getTotalRemoteFileSize' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEE'
+ language = 'Java' body = ' int count = 0; for (FileEntry e : entries) { int type = e.getType(); if (type == FileListingService.TYPE_DIRECTORY) { // get the children FileEntry[] children = fls.getChildren(e, false, null); count += getTotalRemoteFileSize(children, fls) + 1; } else if (type == FileListingService.TYPE_FILE) { count += e.getSizeValue(); } } return count; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEF'
+ name = 'getTotalLocalFileSize' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>files
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ compute the recursive file size of all the files in the list. Folder
+ have a weight of 1.
+ This does not check for circular links.
+@param files
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF3'
+ name = 'files' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF7'
+ name = 'getTotalLocalFileSize' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF8'
+ language = 'Java' body = ' int count = 0; for (File f : files) { if (f.exists()) { if (f.isDirectory()) { return getTotalLocalFileSize(f.listFiles()) + 1; } else if (f.isFile()) { count += f.length(); } } } return count; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FEF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF9'
+ name = 'doPull' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003000'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor the progress monitor. Must be started already.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003001'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003002'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pulls multiple files/folders recursively.
+@param entries The list of entry to pull
+@param localPath the localpath to a directory
+@param fileListingService a FileListingService object to browse through remote directories.
+@param monitor the progress monitor. Must be started already.
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFC'
+ name = 'entries' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFD'
+ name = 'localPath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFE'
+ name = 'fileListingService' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFF'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003003'
+ name = 'doPull' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003004'
+ language = 'Java' body = ' for (FileEntry e : entries) { // check if we're cancelled if (monitor.isCanceled() == true) { return new SyncResult(RESULT_CANCELED); } // get type (we only pull directory and files for now) int type = e.getType(); if (type == FileListingService.TYPE_DIRECTORY) { monitor.startSubTask(e.getFullPath()); String dest = localPath + File.separator + e.getName(); // make the directory File d = new File(dest); d.mkdir(); // then recursively call the content. Since we did a ls command // to get the number of files, we can use the cache FileEntry[] children = fileListingService.getChildren(e, true, null); SyncResult result = doPull(children, dest, fileListingService, monitor); if (result.mCode != RESULT_OK) { return result; } monitor.advance(1); } else if (type == FileListingService.TYPE_FILE) { monitor.startSubTask(e.getFullPath()); String dest = localPath + File.separator + e.getName(); SyncResult result = doPullFile(e.getFullPath(), dest, monitor); if (result.mCode != RESULT_OK) { return result; } } } return new SyncResult(RESULT_OK); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003005'
+ name = 'doPullFile' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor the monitor. The monitor must be started already.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Pulls a remote file
+@param remotePath the remote file (length max is 1024)
+@param localPath the local destination
+@param monitor the monitor. The monitor must be started already.
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003007'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003008'
+ name = 'remotePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003009'
+ name = 'localPath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300A'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300E'
+ name = 'doPullFile' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000300F'
+ language = 'Java' body = ' byte[] msg = null; byte[] pullResult = new byte[8]; final int timeOut = DdmPreferences.getTimeOut(); try { byte[] remotePathContent = remotePath.getBytes(AdbHelper.DEFAULT_ENCODING); if (remotePathContent.length > REMOTE_PATH_MAX_LENGTH) { return new SyncResult(RESULT_REMOTE_PATH_LENGTH); } // create the full request message msg = createFileReq(ID_RECV, remotePathContent); // and send it. AdbHelper.write(mChannel, msg, -1, timeOut); // read the result, in a byte array containing 2 ints // (id, size) AdbHelper.read(mChannel, pullResult, -1, timeOut); // check we have the proper data back if (checkResult(pullResult, ID_DATA) == false && checkResult(pullResult, ID_DONE) == false) { return new SyncResult(RESULT_CONNECTION_ERROR); } } catch (UnsupportedEncodingException e) { return new SyncResult(RESULT_REMOTE_PATH_ENCODING, e); } catch (IOException e) { return new SyncResult(RESULT_CONNECTION_ERROR, e); } // access the destination file File f = new File(localPath); // create the stream to write in the file. We use a new try/catch block to differentiate // between file and network io exceptions. FileOutputStream fos = null; try { fos = new FileOutputStream(f); } catch (FileNotFoundException e) { return new SyncResult(RESULT_FILE_WRITE_ERROR, e); } // the buffer to read the data byte[] data = new byte[SYNC_DATA_MAX]; // loop to get data until we're done. while (true) { // check if we're cancelled if (monitor.isCanceled() == true) { return new SyncResult(RESULT_CANCELED); } // if we're done, we stop the loop if (checkResult(pullResult, ID_DONE)) { break; } if (checkResult(pullResult, ID_DATA) == false) { // hmm there's an error return new SyncResult(RESULT_CONNECTION_ERROR); } int length = ArrayHelper.swap32bitFromArray(pullResult, 4); if (length > SYNC_DATA_MAX) { // buffer overrun! // error and exit return new SyncResult(RESULT_BUFFER_OVERRUN); } try { // now read the length we received AdbHelper.read(mChannel, data, length, timeOut); // get the header for the next packet. AdbHelper.read(mChannel, pullResult, -1, timeOut); } catch (IOException e) { return new SyncResult(RESULT_CONNECTION_ERROR, e); } // write the content in the file try { fos.write(data, 0, length); } catch (IOException e) { return new SyncResult(RESULT_FILE_WRITE_ERROR, e); } monitor.advance(length); } try { fos.flush(); } catch (IOException e) { return new SyncResult(RESULT_FILE_WRITE_ERROR, e); } return new SyncResult(RESULT_OK); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003005'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003010'
+ name = 'doPush' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003016'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003017'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003018'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Push multiple files
+@param fileArray
+@param remotePath
+@param monitor
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003012'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003013'
+ name = 'fileArray' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF2'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003014'
+ name = 'remotePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003015'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003019'
+ name = 'doPush' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301A'
+ language = 'Java' body = ' for (File f : fileArray) { // check if we're canceled if (monitor.isCanceled() == true) { return new SyncResult(RESULT_CANCELED); } if (f.exists()) { if (f.isDirectory()) { // append the name of the directory to the remote path String dest = remotePath + "/" + f.getName(); // $NON-NLS-1S monitor.startSubTask(dest); SyncResult result = doPush(f.listFiles(), dest, monitor); if (result.mCode != RESULT_OK) { return result; } monitor.advance(1); } else if (f.isFile()) { // append the name of the file to the remote path String remoteFile = remotePath + "/" + f.getName(); // $NON-NLS-1S monitor.startSubTask(remoteFile); SyncResult result = doPushFile(f.getAbsolutePath(), remoteFile, monitor); if (result.mCode != RESULT_OK) { return result; } } } } return new SyncResult(RESULT_OK); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003010'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301B'
+ name = 'doPushFile' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003021'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>monitor the monitor. The monitor must be started already.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003022'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a {@link SyncResult} object with a code and an optional message.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003023'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Push a single file
+@param localPath the local file to push
+@param remotePath the remote file (length max is 1024)
+@param monitor the monitor. The monitor must be started already.
+@return a {@link SyncResult} object with a code and an optional message.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301E'
+ name = 'localPath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301F'
+ name = 'remotePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003020'
+ name = 'monitor' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003024'
+ name = 'doPushFile' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003025'
+ language = 'Java' body = ' FileInputStream fis = null; byte[] msg; final int timeOut = DdmPreferences.getTimeOut(); try { byte[] remotePathContent = remotePath.getBytes(AdbHelper.DEFAULT_ENCODING); if (remotePathContent.length > REMOTE_PATH_MAX_LENGTH) { return new SyncResult(RESULT_REMOTE_PATH_LENGTH); } File f = new File(localPath); // this shouldn't happen but still... if (f.exists() == false) { return new SyncResult(RESULT_NO_LOCAL_FILE); } // create the stream to read the file fis = new FileInputStream(f); // create the header for the action msg = createSendFileReq(ID_SEND, remotePathContent, 0644); } catch (UnsupportedEncodingException e) { return new SyncResult(RESULT_REMOTE_PATH_ENCODING, e); } catch (FileNotFoundException e) { return new SyncResult(RESULT_FILE_READ_ERROR, e); } // and send it. We use a custom try/catch block to make the difference between // file and network IO exceptions. try { AdbHelper.write(mChannel, msg, -1, timeOut); } catch (IOException e) { return new SyncResult(RESULT_CONNECTION_ERROR, e); } // create the buffer used to read. // we read max SYNC_DATA_MAX, but we need 2 4 bytes at the beginning. if (mBuffer == null) { mBuffer = new byte[SYNC_DATA_MAX + 8]; } System.arraycopy(ID_DATA, 0, mBuffer, 0, ID_DATA.length); // look while there is something to read while (true) { // check if we're canceled if (monitor.isCanceled() == true) { return new SyncResult(RESULT_CANCELED); } // read up to SYNC_DATA_MAX int readCount = 0; try { readCount = fis.read(mBuffer, 8, SYNC_DATA_MAX); } catch (IOException e) { return new SyncResult(RESULT_FILE_READ_ERROR, e); } if (readCount == -1) { // we reached the end of the file break; } // now send the data to the device // first write the amount read ArrayHelper.swap32bitsToArray(readCount, mBuffer, 4); // now write it try { AdbHelper.write(mChannel, mBuffer, readCount+8, timeOut); } catch (IOException e) { return new SyncResult(RESULT_CONNECTION_ERROR, e); } // and advance the monitor monitor.advance(readCount); } // close the local file try { fis.close(); } catch (IOException e) { return new SyncResult(RESULT_FILE_READ_ERROR, e); } try { // create the DONE message long time = System.currentTimeMillis() / 1000; msg = createReq(ID_DONE, (int)time); // and send it. AdbHelper.write(mChannel, msg, -1, timeOut); // read the result, in a byte array containing 2 ints // (id, size) byte[] result = new byte[8]; AdbHelper.read(mChannel, result, -1 /* full length */, timeOut); if (checkResult(result, ID_OKAY) == false) { if (checkResult(result, ID_FAIL)) { // read some error message... int len = ArrayHelper.swap32bitFromArray(result, 4); AdbHelper.read(mChannel, mBuffer, len, timeOut); // output the result? String message = new String(mBuffer, 0, len); Log.e("ddms", "transfer error: " + message); return new SyncResult(RESULT_UNKNOWN_ERROR, message); } return new SyncResult(RESULT_UNKNOWN_ERROR); } } catch (IOException e) { return new SyncResult(RESULT_CONNECTION_ERROR, e); } return new SyncResult(RESULT_OK); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003026'
+ name = 'readMode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>path the remote file
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>and Integer containing the mode if all went well or null
+ otherwise
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the mode of the remote file.
+@param path the remote file
+@return and Integer containing the mode if all went well or null
+ otherwise</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003028'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000855'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003029'
+ name = 'path' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302D'
+ name = 'readMode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302E'
+ language = 'Java' body = ' try { // create the stat request message. byte[] msg = createFileReq(ID_STAT, path); AdbHelper.write(mChannel, msg, -1 /* full length */, DdmPreferences.getTimeOut()); // read the result, in a byte array containing 4 ints // (id, mode, size, time) byte[] statResult = new byte[16]; AdbHelper.read(mChannel, statResult, -1 /* full length */, DdmPreferences.getTimeOut()); // check we have the proper data back if (checkResult(statResult, ID_STAT) == false) { return null; } // we return the mode (2nd int in the array) return ArrayHelper.swap32bitFromArray(statResult, 4); } catch (IOException e) { return null; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003026'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302F'
+ name = 'createReq' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003034'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003035'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003036'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create a command with a code and an int values
+@param command
+@param value
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003031'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003032'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003033'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003037'
+ name = 'createReq' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003038'
+ language = 'Java' body = ' byte[] array = new byte[8]; System.arraycopy(command, 0, array, 0, 4); ArrayHelper.swap32bitsToArray(value, array, 4); return array; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000302F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003039'
+ name = 'createFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>path The path of the remote file on which to execute the command
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the byte[] to send to the device through adb
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003040'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates the data array for a stat request.
+@param command the 4 byte command (ID_STAT, ID_RECV, ...)
+@param path The path of the remote file on which to execute the command
+@return the byte[] to send to the device through adb</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303C'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303D'
+ name = 'path' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003041'
+ name = 'createFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003042'
+ language = 'Java' body = ' byte[] pathContent = null; try { pathContent = path.getBytes(AdbHelper.DEFAULT_ENCODING); } catch (UnsupportedEncodingException e) { return null; } return createFileReq(command, pathContent); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003039'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003043'
+ name = 'createFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003048'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>path The path, as a byte array, of the remote file on which to
+ execute the command.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003049'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the byte[] to send to the device through adb
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates the data array for a file request. This creates an array with a 4 byte command + the
+ remote file name.
+@param command the 4 byte command (ID_STAT, ID_RECV, ...).
+@param path The path, as a byte array, of the remote file on which to
+ execute the command.
+@return the byte[] to send to the device through adb</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003045'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003046'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003047'
+ name = 'path' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304B'
+ name = 'createFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304C'
+ language = 'Java' body = ' byte[] array = new byte[8 + path.length]; System.arraycopy(command, 0, array, 0, 4); ArrayHelper.swap32bitsToArray(path.length, array, 4); System.arraycopy(path, 0, array, 8, path.length); return array; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003043'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304D'
+ name = 'createSendFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003050'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003051'
+ name = 'path' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003052'
+ name = 'mode' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003053'
+ name = 'createSendFileReq' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003054'
+ language = 'Java' body = ' // make the mode into a string String modeStr = "," + (mode & 0777); // $NON-NLS-1S byte[] modeContent = null; try { modeContent = modeStr.getBytes(AdbHelper.DEFAULT_ENCODING); } catch (UnsupportedEncodingException e) { return null; } byte[] array = new byte[8 + path.length + modeContent.length]; System.arraycopy(command, 0, array, 0, 4); ArrayHelper.swap32bitsToArray(path.length + modeContent.length, array, 4); System.arraycopy(path, 0, array, 8, path.length); System.arraycopy(modeContent, 0, array, 8 + path.length, modeContent.length); return array; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003055'
+ name = 'checkResult' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>code The 4 byte code.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the code matches.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Checks the result array starts with the provided code
+@param result The result array to check
+@param code The 4 byte code.
+@return true if the code matches.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003057'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003058'
+ name = 'result' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003059'
+ name = 'code' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305D'
+ name = 'checkResult' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305E'
+ language = 'Java' body = ' if (result[0] != code[0] || result[1] != code[1] || result[2] != code[2] || result[3] != code[3]) { return false; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003055'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305F'
+ name = 'getFileType' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003061'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003062'
+ name = 'mode' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003063'
+ name = 'getFileType' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003064'
+ language = 'Java' body = ' if ((mode & S_ISOCK) == S_ISOCK) { return FileListingService.TYPE_SOCKET; } if ((mode & S_IFLNK) == S_IFLNK) { return FileListingService.TYPE_LINK; } if ((mode & S_IFREG) == S_IFREG) { return FileListingService.TYPE_FILE; } if ((mode & S_IFBLK) == S_IFBLK) { return FileListingService.TYPE_BLOCK; } if ((mode & S_IFDIR) == S_IFDIR) { return FileListingService.TYPE_DIRECTORY; } if ((mode & S_IFCHR) == S_IFCHR) { return FileListingService.TYPE_CHARACTER; } if ((mode & S_IFIFO) == S_IFIFO) { return FileListingService.TYPE_FIFO; } return FileListingService.TYPE_OTHER; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000305F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'
+ name = 'AndroidDebugBridge.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003066'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003067'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003068'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003069'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003071'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003072'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003074'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003075'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003076'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003066'
+ name = 'AndroidDebugBridge.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003067'
+ name = 'AndroidDebugBridge.java -> BufferedReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003068'
+ name = 'AndroidDebugBridge.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003069'
+ name = 'AndroidDebugBridge.java -> InputStreamReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306B'
+ name = 'AndroidDebugBridge.java -> State' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306A'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306D'
+ name = 'AndroidDebugBridge.java -> InetAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306F'
+ name = 'AndroidDebugBridge.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003071'
+ name = 'AndroidDebugBridge.java -> UnknownHostException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002458'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003072'
+ name = 'AndroidDebugBridge.java -> InvalidParameterException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003074'
+ name = 'AndroidDebugBridge.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003075'
+ name = 'AndroidDebugBridge.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003076'
+ name = 'AndroidDebugBridge.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002011'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002013'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000140C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201F'
+ name = 'IShellOutputReceiver.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002021'>
+ <UML:ElementResidence.resident>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'
+ name = 'IShellOutputReceiver' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002022'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide methods that deal with out from a remote shell
+ command on a device/emulator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000321C'
+ name = 'addOutput' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003222'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>length The length of the new data.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003223'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called every time some new data is available.
+@param data The new data.
+@param offset The offset at which the new data starts.
+@param length The length of the new data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000321E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000321F'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003220'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003221'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003224'
+ name = 'flush' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003227'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called at the end of the process execution (unless the process was
+ canceled). This allows the receiver to terminate and flush whatever
+ data was not yet processed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003226'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003228'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true to cancel the execution of the command.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Cancel method to stop the execution of the remote shell command.
+@return true to cancel the execution of the command.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002023'
+ name = 'HeapSegment.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003230'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003231'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003232'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003236'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003230'
+ name = 'HeapSegment.java -> BufferUnderflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002023'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003231'
+ name = 'HeapSegment.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002023'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003232'
+ name = 'HeapSegment.java -> ByteOrder' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002023'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003236'
+ name = 'HeapSegment.java -> ParseException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002023'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003234'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002025'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'
+ name = 'HeapSegment' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003239'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002026'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes the types and locations of objects in a segment of a heap.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323C'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002028'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes an object/region encoded in the HPSG data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323D'
+ name = 'SOLIDITY_FREE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003240'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003241'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003242'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003243'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes a free block. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003244'
+ name = 'SOLIDITY_HARD' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003247'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003248'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003249'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is strongly-reachable. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324B'
+ name = 'SOLIDITY_SOFT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000324F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003250'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003251'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is softly-reachable. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003252'
+ name = 'SOLIDITY_WEAK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003255'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003256'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003257'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003258'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is weakly-reachable. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003259'
+ name = 'SOLIDITY_PHANTOM' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325E'
+ language = 'Java' body = ' 4'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000325F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is phantom-reachable. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003260'
+ name = 'SOLIDITY_FINALIZABLE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003263'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003264'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003265'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003266'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is pending finalization. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003267'
+ name = 'SOLIDITY_SWEEP' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326C'
+ language = 'Java' body = ' 6'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element is not reachable, and is about to be swept/freed. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000326E'
+ name = 'SOLIDITY_INVALID' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003271'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003272'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003273'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003274'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The reachability of the object is unknown. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003275'
+ name = 'KIND_OBJECT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003278'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003279'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327A'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes a data object. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327C'
+ name = 'KIND_CLASS_OBJECT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000327F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003280'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003281'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003282'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes a class object. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003283'
+ name = 'KIND_ARRAY_1' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003286'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003287'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003288'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003289'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes an array of 1-byte elements. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328A'
+ name = 'KIND_ARRAY_2' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000328F'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003290'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes an array of 2-byte elements. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003291'
+ name = 'KIND_ARRAY_4' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003294'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003295'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003296'
+ language = 'Java' body = ' 4'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003297'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes an array of 4-byte elements. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003298'
+ name = 'KIND_ARRAY_8' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329D'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes an array of 8-byte elements. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000329F'
+ name = 'KIND_UNKNOWN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A4'
+ language = 'Java' body = ' 6'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes an unknown type of object. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A6'
+ name = 'KIND_NATIVE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AB'
+ language = 'Java' body = ' 7'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The element describes a native object. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032AD'
+ name = 'KIND_INVALID' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B2'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The object kind is unknown or unspecified. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B4'
+ name = 'PARTIAL_MASK' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032B9'
+ language = 'Java' body = ' 1 << 7'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A bit in the HPSG data that indicates that an element should
+ be combined with the element that follows, typically because
+ an element is too large to be described by a single element.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BB'
+ name = 'mSolidity' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes the reachability/solidity of the element. Must
+ be set to one of the SOLIDITY_* values.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C1'
+ name = 'mKind' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes the type/kind of the element. Must be set to one
+ of the KIND_* values.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032C7'
+ name = 'mLength' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes the length of the element, in bytes.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CD'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates an uninitialized element.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D0'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D1'
+ language = 'Java' body = ' setSolidity(SOLIDITY_INVALID); setKind(KIND_INVALID); setLength(-1); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D2'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>hs The heap segment to pull the entry from.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ParseException if the provided data is malformed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create an element describing the entry at the current
+ position of hpsgData.
+
+@param hs The heap segment to pull the entry from.
+@throws BufferUnderflowException if there is not a whole entry
+ following the current position
+ of hpsgData.
+@throws ParseException if the provided data is malformed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D4'
+ name = 'hs' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D8'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D9'
+ language = 'Java' body = ' set(hs); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DA'
+ name = 'set' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>hs The heap segment to pull the entry from.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>this object.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ParseException if the provided data is malformed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Replace the element with the entry at the current position of
+ hpsgData.
+
+@param hs The heap segment to pull the entry from.
+@return this object.
+@throws BufferUnderflowException if there is not a whole entry
+ following the current position of
+ hpsgData.
+@throws ParseException if the provided data is malformed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DD'
+ name = 'hs' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E2'
+ name = 'set' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E3'
+ language = 'Java' body = ' /* TODO: Maybe keep track of the virtual address of each element * so that they can be examined independently. */ ByteBuffer data = hs.mUsageData; int eState = (int)data.get() & 0x000000ff; int eLen = ((int)data.get() & 0x000000ff) + 1; while ((eState & PARTIAL_MASK) != 0) { /* If the partial bit was set, the next byte should describe * the same object as the current one. */ int nextState = (int)data.get() & 0x000000ff; if ((nextState & ~PARTIAL_MASK) != (eState & ~PARTIAL_MASK)) { throw new ParseException("State mismatch", data.position()); } eState = nextState; eLen += ((int)data.get() & 0x000000ff) + 1; } setSolidity(eState & 0x7); setKind((eState >> 3) & 0x7); setLength(eLen * hs.mAllocationUnitSize); return this; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E4'
+ name = 'getSolidity' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E7'
+ name = 'getSolidity' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E8'
+ language = 'Java' body = ' return mSolidity; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E9'
+ name = 'setSolidity' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EC'
+ name = 'solidity' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032ED'
+ name = 'setSolidity' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EE'
+ language = 'Java' body = ' this.mSolidity = solidity; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EF'
+ name = 'getKind' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F2'
+ name = 'getKind' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F3'
+ language = 'Java' body = ' return mKind; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F4'
+ name = 'setKind' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F7'
+ name = 'kind' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F8'
+ name = 'setKind' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F9'
+ language = 'Java' body = ' this.mKind = kind; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FA'
+ name = 'getLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FD'
+ name = 'getLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FE'
+ language = 'Java' body = ' return mLength; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FF'
+ name = 'setLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003301'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003302'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003303'
+ name = 'setLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003304'
+ language = 'Java' body = ' this.mLength = length; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003305'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003307'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003308'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003309'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330A'
+ language = 'Java' body = ' if (mLength != other.mLength) { return mLength < other.mLength ? -1 : 1; } return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003305'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330B'
+ name = 'mHeapId' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000330F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003310'
+ name = 'mAllocationUnitSize' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003313'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003314'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003315'
+ name = 'mStartAddress' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003318'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003319'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331A'
+ name = 'mOffset' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000331F'
+ name = 'mAllocationUnitCount' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003322'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003323'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003324'
+ name = 'mUsageData' visibility = 'protected' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003327'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003328'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003329'
+ name = 'INVALID_START_ADDRESS' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332E'
+ language = 'Java' body = ' -1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332F'
+ name = 'HeapSegment' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003332'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>hpsgData The raw data from an HPSG chunk.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003333'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>BufferUnderflowException if hpsgData is too small
+ to hold the HPSG chunk header data.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003334'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create a new HeapSegment based on the raw contents
+ of an HPSG chunk.
+
+@param hpsgData The raw data from an HPSG chunk.
+@throws BufferUnderflowException if hpsgData is too small
+ to hold the HPSG chunk header data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003331'
+ name = 'hpsgData' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003335'
+ name = 'HeapSegment' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003336'
+ language = 'Java' body = ' /* Read the HPSG chunk header. * These get*() calls may throw a BufferUnderflowException * if the underlying data isn't big enough. */ hpsgData.order(ByteOrder.BIG_ENDIAN); mHeapId = hpsgData.getInt(); mAllocationUnitSize = (int) hpsgData.get(); mStartAddress = (long) hpsgData.getInt() & 0x00000000ffffffffL; mOffset = hpsgData.getInt(); mAllocationUnitCount = hpsgData.getInt(); // Hold onto the remainder of the data. mUsageData = hpsgData.slice(); mUsageData.order(ByteOrder.BIG_ENDIAN); // doesn't actually matter // Validate the data. //xxx do it //xxx make sure the number of elements matches mAllocationUnitCount. //xxx make sure the last element doesn't have P set '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000332F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003337'
+ name = 'isValid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if this segment has not been appended to
+ another segment.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ See if this segment still contains data, and has not been
+ appended to another segment.
+
+@return true if this segment has not been appended to
+ another segment.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003339'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333C'
+ name = 'isValid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333D'
+ language = 'Java' body = ' return mStartAddress != INVALID_START_ADDRESS; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003337'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333E'
+ name = 'canAppend' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003342'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>other The HeapSegment to check.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003343'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if <code>other</code> comes immediately after this
+ segment.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003344'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ See if <code>other</code> comes immediately after this segment.
+
+@param other The HeapSegment to check.
+@return true if <code>other</code> comes immediately after this
+ segment.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003340'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003341'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003345'
+ name = 'canAppend' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003346'
+ language = 'Java' body = ' return isValid() && other.isValid() && mHeapId == other.mHeapId && mAllocationUnitSize == other.mAllocationUnitSize && getEndAddress() == other.getStartAddress(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003347'
+ name = 'append' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>other The segment to append to this segment, if possible.
+ If appended, <code>other</code> will be invalid
+ when this method returns.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if <code>other</code> was successfully appended to
+ this segment.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Append the contents of <code>other</code> to this segment
+ if it describes the segment immediately after this one.
+
+@param other The segment to append to this segment, if possible.
+ If appended, <code>other</code> will be invalid
+ when this method returns.
+@return true if <code>other</code> was successfully appended to
+ this segment.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003349'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334A'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334E'
+ name = 'append' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000334F'
+ language = 'Java' body = ' if (canAppend(other)) { /* Preserve the position. The mark is not preserved, * but we don't use it anyway. */ int pos = mUsageData.position(); // Guarantee that we have enough room for the new data. if (mUsageData.capacity() - mUsageData.limit() < other.mUsageData.limit()) { /* Grow more than necessary in case another append() * is about to happen. */ int newSize = mUsageData.limit() + other.mUsageData.limit(); ByteBuffer newData = ByteBuffer.allocate(newSize * 2); mUsageData.rewind(); newData.put(mUsageData); mUsageData = newData; } // Copy the data from the other segment and restore the position. other.mUsageData.rewind(); mUsageData.put(other.mUsageData); mUsageData.position(pos); // Fix this segment's header to cover the new data. mAllocationUnitCount += other.mAllocationUnitCount; // Mark the other segment as invalid. other.mStartAddress = INVALID_START_ADDRESS; other.mUsageData = null; return true; } else { return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003347'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003350'
+ name = 'getStartAddress' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003352'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003353'
+ name = 'getStartAddress' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003354'
+ language = 'Java' body = ' return mStartAddress + mOffset; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003350'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003355'
+ name = 'getLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003357'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003358'
+ name = 'getLength' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003359'
+ language = 'Java' body = ' return mAllocationUnitSize * mAllocationUnitCount; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003355'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335A'
+ name = 'getEndAddress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335D'
+ name = 'getEndAddress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335E'
+ language = 'Java' body = ' return getStartAddress() + getLength(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335F'
+ name = 'rewindElements' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003361'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003362'
+ name = 'rewindElements' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003363'
+ language = 'Java' body = ' if (mUsageData != null) { mUsageData.rewind(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003364'
+ name = 'getNextElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003366'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003367'
+ name = 'reuse' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003368'
+ name = 'getNextElement' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003369'
+ language = 'Java' body = ' try { if (reuse != null) { return reuse.set(this); } else { return new HeapSegmentElement(this); } } catch (BufferUnderflowException ex) { /* Normal "end of buffer" situation. */ } catch (ParseException ex) { /* Malformed data. */ //TODO: we should catch this in the constructor } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003364'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336A'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336D'
+ name = 'o' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336E'
+ name = 'equals' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336F'
+ language = 'Java' body = ' if (o instanceof HeapSegment) { return compareTo((HeapSegment) o) == 0; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003370'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003372'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003373'
+ name = 'hashCode' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003374'
+ language = 'Java' body = ' return mHeapId * 31 + mAllocationUnitSize * 31 + (int) mStartAddress * 31 + mOffset * 31 + mAllocationUnitCount * 31 + mUsageData.hashCode(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003370'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003375'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003377'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003378'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003379'
+ language = 'Java' body = ' StringBuilder str = new StringBuilder(); str.append("HeapSegment { heap ").append(mHeapId) .append(", start 0x") .append(Integer.toHexString((int) getStartAddress())) .append(", length ").append(getLength()) .append(" }"); return str.toString(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003375'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337A'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337D'
+ name = 'other' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337E'
+ name = 'compareTo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337F'
+ language = 'Java' body = ' if (mHeapId != other.mHeapId) { return mHeapId < other.mHeapId ? -1 : 1; } if (getStartAddress() != other.getStartAddress()) { return getStartAddress() < other.getStartAddress() ? -1 : 1; } /* If two segments have the same start address, the rest of * the fields should be equal. Go through the motions, though. * Note that we re-check the components of getStartAddress() * (mStartAddress and mOffset) to make sure that all fields in * an equal segment are equal. */ if (mAllocationUnitSize != other.mAllocationUnitSize) { return mAllocationUnitSize < other.mAllocationUnitSize ? -1 : 1; } if (mStartAddress != other.mStartAddress) { return mStartAddress < other.mStartAddress ? -1 : 1; } if (mOffset != other.mOffset) { return mOffset < other.mOffset ? -1 : 1; } if (mAllocationUnitCount != other.mAllocationUnitCount) { return mAllocationUnitCount < other.mAllocationUnitCount ? -1 : 1; } if (mUsageData != other.mUsageData) { return mUsageData.compareTo(other.mUsageData); } return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'
+ name = 'AdbHelper.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003381'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003382'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003383'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003384'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003386'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003387'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003388'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003389'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003381'
+ name = 'AdbHelper.java -> LogLevel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001411'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003382'
+ name = 'AdbHelper.java -> LogReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003383'
+ name = 'AdbHelper.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003384'
+ name = 'AdbHelper.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003386'
+ name = 'AdbHelper.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003387'
+ name = 'AdbHelper.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003388'
+ name = 'AdbHelper.java -> ByteOrder' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003389'
+ name = 'AdbHelper.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002029'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202B'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202A'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202A'
+ name = 'AdbHelper' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Helper class to handle requests and connections to adb.
+ <p/>{@link DebugBridgeServer} is the public API to connection to adb, while {@link AdbHelper}
+ does the low level stuff.
+ <p/>This currently uses spin-wait non-blocking I/O. A Selector would be more efficient,
+ but seems like overkill for what we're doing here.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202D'
+ name = 'AdbResponse' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Response from ADB.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339D'
+ name = 'AdbResponse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339F'
+ name = 'AdbResponse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A0'
+ language = 'Java' body = ' // ioSuccess = okay = timeout = false; message = ""; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A1'
+ name = 'ioSuccess' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A6'
+ name = 'okay' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AB'
+ name = 'timeout' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B0'
+ name = 'message' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338B'
+ name = 'WAIT_TIME' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003390'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003391'
+ name = 'DEFAULT_ENCODING' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003394'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003395'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003396'
+ language = 'Java' body = ' "ISO-8859-1"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003397'
+ name = 'AdbHelper' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003399'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> do not instantiate *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339A'
+ name = 'AdbHelper' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339B'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003397'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B5'
+ name = 'open' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>devicePort the port we're opening
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create and connect a new pass-through socket, from the host to a port on
+ the device.
+
+@param adbSockAddr
+@param device the device to connect to. Can be null in which case the connection will be
+ to the first available device.
+@param devicePort the port we're opening</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B8'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B9'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BA'
+ name = 'devicePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BD'
+ name = 'open' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BE'
+ language = 'Java' body = ' SocketChannel adbChan = SocketChannel.open(adbSockAddr); try { adbChan.socket().setTcpNoDelay(true); adbChan.configureBlocking(false); // if the device is not -1, then we first tell adb we're looking to // talk to a specific device setDevice(adbChan, device); byte[] req = createAdbForwardRequest(null, devicePort); // Log.hexDump(req); if (write(adbChan, req) == false) throw new IOException("failed submitting request to ADB"); //$NON-NLS-1$ AdbResponse resp = readAdbResponse(adbChan, false); if (!resp.okay) throw new IOException("connection request rejected"); //$NON-NLS-1$ adbChan.configureBlocking(true); } catch (IOException ioe) { adbChan.close(); throw ioe; } return adbChan; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BF'
+ name = 'createPassThroughConnection' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pid the process pid to connect to.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates and connects a new pass-through socket, from the host to a port on
+ the device.
+
+@param adbSockAddr
+@param device the device to connect to. Can be null in which case the connection will be
+ to the first available device.
+@param pid the process pid to connect to.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C2'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C3'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C4'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C7'
+ name = 'createPassThroughConnection' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C8'
+ language = 'Java' body = ' SocketChannel adbChan = SocketChannel.open(adbSockAddr); try { adbChan.socket().setTcpNoDelay(true); adbChan.configureBlocking(false); // if the device is not -1, then we first tell adb we're looking to // talk to a specific device setDevice(adbChan, device); byte[] req = createJdwpForwardRequest(pid); // Log.hexDump(req); if (write(adbChan, req) == false) throw new IOException("failed submitting request to ADB"); //$NON-NLS-1$ AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.okay) throw new IOException("connection request rejected: " + resp.message); //$NON-NLS-1$ adbChan.configureBlocking(true); } catch (IOException ioe) { adbChan.close(); throw ioe; } return adbChan; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033BF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C9'
+ name = 'createAdbForwardRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>port the port on the device. This does not need to be numeric.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a port forwarding request for adb. This returns an array
+ containing "####tcp:{port}:{addStr}".
+@param addrStr the host. Can be null.
+@param port the port on the device. This does not need to be numeric.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CC'
+ name = 'addrStr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CD'
+ name = 'port' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D0'
+ name = 'createAdbForwardRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D1'
+ language = 'Java' body = ' String reqStr; if (addrStr == null) reqStr = "tcp:" + port; else reqStr = "tcp:" + port + ":" + addrStr; return formAdbRequest(reqStr); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D2'
+ name = 'createJdwpForwardRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pid the jdwp process pid on the device.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a port forwarding request to a jdwp process. This returns an array
+ containing "####jwdp:{pid}".
+@param pid the jdwp process pid on the device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D5'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D8'
+ name = 'createJdwpForwardRequest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D9'
+ language = 'Java' body = ' String reqStr = String.format("jdwp:%1$d", pid); //$NON-NLS-1$ return formAdbRequest(reqStr); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DA'
+ name = 'formAdbRequest' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create an ASCII string preceeded by four hex digits. The opening "####"
+ is the length of the rest of the string, encoded as ASCII hex (case
+ doesn't matter). "port" and "host" are what we want to forward to. If
+ we're on the host side connecting into the device, "addrStr" should be
+ null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DD'
+ name = 'req' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DF'
+ name = 'formAdbRequest' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E0'
+ language = 'Java' body = ' String resultStr = String.format("%04X%s", req.length(), req); //$NON-NLS-1$ byte[] result; try { result = resultStr.getBytes(DEFAULT_ENCODING); } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); // not expected return null; } assert result.length == req.length() + 4; return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E1'
+ name = 'readAdbResponse' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>readDiagString If true, we're expecting an OKAY response to be
+ followed by a diagnostic string. Otherwise, we only expect the
+ diagnostic string to follow a FAIL.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads the response from ADB after a command.
+@param chan The socket channel that is connected to adb.
+@param readDiagString If true, we're expecting an OKAY response to be
+ followed by a diagnostic string. Otherwise, we only expect the
+ diagnostic string to follow a FAIL.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E4'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E5'
+ name = 'readDiagString' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E8'
+ name = 'readAdbResponse' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E9'
+ language = 'Java' body = ' AdbResponse resp = new AdbResponse(); byte[] reply = new byte[4]; if (read(chan, reply) == false) { return resp; } resp.ioSuccess = true; if (isOkay(reply)) { resp.okay = true; } else { readDiagString = true; // look for a reason after the FAIL resp.okay = false; } // not a loop -- use "while" so we can use "break" while (readDiagString) { // length string is in next 4 bytes byte[] lenBuf = new byte[4]; if (read(chan, lenBuf) == false) { Log.w("ddms", "Expected diagnostic string not found"); break; } String lenStr = replyToString(lenBuf); int len; try { len = Integer.parseInt(lenStr, 16); } catch (NumberFormatException nfe) { Log.w("ddms", "Expected digits, got '" + lenStr + "': " + lenBuf[0] + " " + lenBuf[1] + " " + lenBuf[2] + " " + lenBuf[3]); Log.w("ddms", "reply was " + replyToString(reply)); break; } byte[] msg = new byte[len]; if (read(chan, msg) == false) { Log.w("ddms", "Failed reading diagnostic string, len=" + len); break; } resp.message = replyToString(msg); Log.v("ddms", "Got reply '" + replyToString(reply) + "', diag='" + resp.message + "'"); break; } return resp; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EA'
+ name = 'getFrameBuffer' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Retrieve the frame buffer from the device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F9A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033ED'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EE'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F0'
+ name = 'getFrameBuffer' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F1'
+ language = 'Java' body = ' RawImage imageParams = new RawImage(); byte[] request = formAdbRequest("framebuffer:"); //$NON-NLS-1$ byte[] nudge = { 0 }; byte[] reply; SocketChannel adbChan = null; try { adbChan = SocketChannel.open(adbSockAddr); adbChan.configureBlocking(false); // if the device is not -1, then we first tell adb we're looking to talk // to a specific device setDevice(adbChan, device); if (write(adbChan, request) == false) throw new IOException("failed asking for frame buffer"); AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { Log.w("ddms", "Got timeout or unhappy response from ADB fb req: " + resp.message); adbChan.close(); return null; } // first the protocol version. reply = new byte[4]; if (read(adbChan, reply) == false) { Log.w("ddms", "got partial reply from ADB fb:"); Log.hexDump("ddms", LogLevel.WARN, reply, 0, reply.length); adbChan.close(); return null; } ByteBuffer buf = ByteBuffer.wrap(reply); buf.order(ByteOrder.LITTLE_ENDIAN); int version = buf.getInt(); // get the header size (this is a count of int) int headerSize = RawImage.getHeaderSize(version); // read the header reply = new byte[headerSize * 4]; if (read(adbChan, reply) == false) { Log.w("ddms", "got partial reply from ADB fb:"); Log.hexDump("ddms", LogLevel.WARN, reply, 0, reply.length); adbChan.close(); return null; } buf = ByteBuffer.wrap(reply); buf.order(ByteOrder.LITTLE_ENDIAN); // fill the RawImage with the header if (imageParams.readHeader(version, buf) == false) { Log.e("Screenshot", "Unsupported protocol: " + version); return null; } Log.d("ddms", "image params: bpp=" + imageParams.bpp + ", size=" + imageParams.size + ", width=" + imageParams.width + ", height=" + imageParams.height); if (write(adbChan, nudge) == false) throw new IOException("failed nudging"); reply = new byte[imageParams.size]; if (read(adbChan, reply) == false) { Log.w("ddms", "got truncated reply from ADB fb data"); adbChan.close(); return null; } imageParams.data = reply; } finally { if (adbChan != null) { adbChan.close(); } } return imageParams; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F2'
+ name = 'executeRemoteCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Execute a command on the device and retrieve the output. The output is
+ handed to "rcvr" as it arrives.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F5'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F6'
+ name = 'command' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F7'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F8'
+ name = 'rcvr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FA'
+ name = 'executeRemoteCommand' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FB'
+ language = 'Java' body = ' Log.v("ddms", "execute: running " + command); SocketChannel adbChan = null; try { adbChan = SocketChannel.open(adbSockAddr); adbChan.configureBlocking(false); // if the device is not -1, then we first tell adb we're looking to // talk // to a specific device setDevice(adbChan, device); byte[] request = formAdbRequest("shell:" + command); //$NON-NLS-1$ if (write(adbChan, request) == false) throw new IOException("failed submitting shell command"); AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { Log.e("ddms", "ADB rejected shell command (" + command + "): " + resp.message); throw new IOException("sad result from adb: " + resp.message); } byte[] data = new byte[16384]; ByteBuffer buf = ByteBuffer.wrap(data); while (true) { int count; if (rcvr != null && rcvr.isCancelled()) { Log.v("ddms", "execute: cancelled"); break; } count = adbChan.read(buf); if (count < 0) { // we're at the end, we flush the output rcvr.flush(); Log.v("ddms", "execute '" + command + "' on '" + device + "' : EOF hit. Read: " + count); break; } else if (count == 0) { try { Thread.sleep(WAIT_TIME * 5); } catch (InterruptedException ie) { } } else { if (rcvr != null) { rcvr.addOutput(buf.array(), buf.arrayOffset(), buf.position()); } buf.rewind(); } } } finally { if (adbChan != null) { adbChan.close(); } Log.v("ddms", "execute: returning"); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FC'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003402'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>rcvr the {@link LogReceiver} to receive the log output
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003403'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003404'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs the Event log service on the {@link Device}, and provides its output to the
+ {@link LogReceiver}.
+@param adbSockAddr the socket address to connect to adb
+@param device the Device on which to run the service
+@param rcvr the {@link LogReceiver} to receive the log output
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FF'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003400'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003401'
+ name = 'rcvr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003405'
+ name = 'runEventLogService' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003406'
+ language = 'Java' body = ' runLogService(adbSockAddr, device, "events", rcvr); //$NON-NLS-1$ '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003407'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>rcvr the {@link LogReceiver} to receive the log output
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003410'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Runs a log service on the {@link Device}, and provides its output to the {@link LogReceiver}.
+@param adbSockAddr the socket address to connect to adb
+@param device the Device on which to run the service
+@param logName the name of the log file to output
+@param rcvr the {@link LogReceiver} to receive the log output
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003409'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340A'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340B'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340C'
+ name = 'logName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000340D'
+ name = 'rcvr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003411'
+ name = 'runLogService' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003412'
+ language = 'Java' body = ' SocketChannel adbChan = null; try { adbChan = SocketChannel.open(adbSockAddr); adbChan.configureBlocking(false); // if the device is not -1, then we first tell adb we're looking to talk // to a specific device setDevice(adbChan, device); byte[] request = formAdbRequest("log:" + logName); if (write(adbChan, request) == false) { throw new IOException("failed to submit the log command"); } AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { throw new IOException("Device rejected log command: " + resp.message); } byte[] data = new byte[16384]; ByteBuffer buf = ByteBuffer.wrap(data); while (true) { int count; if (rcvr != null && rcvr.isCancelled()) { break; } count = adbChan.read(buf); if (count < 0) { break; } else if (count == 0) { try { Thread.sleep(WAIT_TIME * 5); } catch (InterruptedException ie) { } } else { if (rcvr != null) { rcvr.parseNewData(buf.array(), buf.arrayOffset(), buf.position()); } buf.rewind(); } } } finally { if (adbChan != null) { adbChan.close(); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003407'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003413'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remotePort the remote port.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a port forwarding between a local and a remote port.
+@param adbSockAddr the socket address to connect to adb
+@param device the device on which to do the port fowarding
+@param localPort the local port to forward
+@param remotePort the remote port.
+@return <code>true</code> if success.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003415'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003416'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003417'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003418'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003419'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341E'
+ name = 'createForward' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000341F'
+ language = 'Java' body = ' SocketChannel adbChan = null; try { adbChan = SocketChannel.open(adbSockAddr); adbChan.configureBlocking(false); byte[] request = formAdbRequest(String.format( "host-serial:%1$s:forward:tcp:%2$d;tcp:%3$d", //$NON-NLS-1$ device.getSerialNumber(), localPort, remotePort)); if (write(adbChan, request) == false) { throw new IOException("failed to submit the forward command."); } AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { throw new IOException("Device rejected command: " + resp.message); } } finally { if (adbChan != null) { adbChan.close(); } } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003413'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003420'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003427'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>remotePort the remote port.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003428'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003429'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Remove a port forwarding between a local and a remote port.
+@param adbSockAddr the socket address to connect to adb
+@param device the device on which to remove the port fowarding
+@param localPort the local port of the forward
+@param remotePort the remote port.
+@return <code>true</code> if success.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003422'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003423'
+ name = 'adbSockAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003424'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003425'
+ name = 'localPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003426'
+ name = 'remotePort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342B'
+ name = 'removeForward' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342C'
+ language = 'Java' body = ' SocketChannel adbChan = null; try { adbChan = SocketChannel.open(adbSockAddr); adbChan.configureBlocking(false); byte[] request = formAdbRequest(String.format( "host-serial:%1$s:killforward:tcp:%2$d;tcp:%3$d", //$NON-NLS-1$ device.getSerialNumber(), localPort, remotePort)); if (!write(adbChan, request)) { throw new IOException("failed to submit the remove forward command."); } AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.ioSuccess || !resp.okay) { throw new IOException("Device rejected command: " + resp.message); } } finally { if (adbChan != null) { adbChan.close(); } } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003420'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342D'
+ name = 'isOkay' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003431'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Checks to see if the first four bytes in "reply" are OKAY.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003430'
+ name = 'reply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003432'
+ name = 'isOkay' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003433'
+ language = 'Java' body = ' return reply[0] == (byte)'O' && reply[1] == (byte)'K' && reply[2] == (byte)'A' && reply[3] == (byte)'Y'; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003434'
+ name = 'replyToString' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003438'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Converts an ADB reply to a string.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003436'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003437'
+ name = 'reply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003439'
+ name = 'replyToString' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343A'
+ language = 'Java' body = ' String result; try { result = new String(reply, DEFAULT_ENCODING); } catch (UnsupportedEncodingException uee) { uee.printStackTrace(); // not expected result = ""; } return result; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003434'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343B'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003440'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>data the buffer to store the read data into.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003441'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>"true" if all data was read.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003442'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003443'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads from the socket until the array is filled, or no more data is coming (because
+ the socket closed or the timeout expired).
+
+@param chan the opened socket to read from. It must be in non-blocking
+ mode for timeouts to work
+@param data the buffer to store the read data into.
+@return "true" if all data was read.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343E'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343F'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003444'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003445'
+ language = 'Java' body = ' try { read(chan, data, -1, DdmPreferences.getTimeOut()); } catch (IOException e) { Log.d("ddms", "readAll: IOException: " + e.getMessage()); return false; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003446'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>timeout The timeout value. A timeout of zero means "wait forever".
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads from the socket until the array is filled, the optional length
+ is reached, or no more data is coming (because the socket closed or the
+ timeout expired). After "timeout" milliseconds since the
+ previous successful read, this will return whether or not new data has
+ been found.
+
+@param chan the opened socket to read from. It must be in non-blocking
+ mode for timeouts to work
+@param data the buffer to store the read data into.
+@param length the length to read or -1 to fill the data buffer completely
+@param timeout The timeout value. A timeout of zero means "wait forever".
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003448'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003449'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344A'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344B'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000344C'
+ name = 'timeout' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003450'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003451'
+ language = 'Java' body = ' ByteBuffer buf = ByteBuffer.wrap(data, 0, length != -1 ? length : data.length); int numWaits = 0; while (buf.position() != buf.limit()) { int count; count = chan.read(buf); if (count < 0) { Log.d("ddms", "read: channel EOF"); throw new IOException("EOF"); } else if (count == 0) { // TODO: need more accurate timeout? if (timeout != 0 && numWaits * WAIT_TIME > timeout) { Log.d("ddms", "read: timeout"); throw new IOException("timeout"); } // non-blocking spin try { Thread.sleep(WAIT_TIME); } catch (InterruptedException ie) { } numWaits++; } else { numWaits = 0; } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003446'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003452'
+ name = 'write' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003457'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>data the buffer to send.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003458'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>"true" if all data was written.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003459'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Write until all data in "data" is written or the connection fails.
+@param chan the opened socket to write to.
+@param data the buffer to send.
+@return "true" if all data was written.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003454'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003455'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003456'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345A'
+ name = 'write' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345B'
+ language = 'Java' body = ' try { write(chan, data, -1, DdmPreferences.getTimeOut()); } catch (IOException e) { Log.e("ddms", e); return false; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003452'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345C'
+ name = 'write' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003463'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>timeout The timeout value. A timeout of zero means "wait forever".
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003464'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003465'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Write until all data in "data" is written, the optional length is reached,
+ the timeout expires, or the connection fails. Returns "true" if all
+ data was written.
+@param chan the opened socket to write to.
+@param data the buffer to send.
+@param length the length to write or -1 to send the whole buffer.
+@param timeout The timeout value. A timeout of zero means "wait forever".
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345F'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003460'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003461'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003462'
+ name = 'timeout' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003466'
+ name = 'write' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003467'
+ language = 'Java' body = ' ByteBuffer buf = ByteBuffer.wrap(data, 0, length != -1 ? length : data.length); int numWaits = 0; while (buf.position() != buf.limit()) { int count; count = chan.write(buf); if (count < 0) { Log.d("ddms", "write: channel EOF"); throw new IOException("channel EOF"); } else if (count == 0) { // TODO: need more accurate timeout? if (timeout != 0 && numWaits * WAIT_TIME > timeout) { Log.d("ddms", "write: timeout"); throw new IOException("timeout"); } // non-blocking spin try { Thread.sleep(WAIT_TIME); } catch (InterruptedException ie) { } numWaits++; } else { numWaits = 0; } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003468'
+ name = 'setDevice' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device The device to talk to.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ tells adb to talk to a specific device
+
+@param adbChan the socket connection to adb
+@param device The device to talk to.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346B'
+ name = 'adbChan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000346C'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003470'
+ name = 'setDevice' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003471'
+ language = 'Java' body = ' // if the device is not -1, then we first tell adb we're looking to talk // to a specific device if (device != null) { String msg = "host:transport:" + device.getSerialNumber(); //$NON-NLS-1$ byte[] device_query = formAdbRequest(msg); if (write(adbChan, device_query) == false) throw new IOException("failed submitting device (" + device + ") request to ADB"); AdbResponse resp = readAdbResponse(adbChan, false /* readDiagString */); if (!resp.okay) throw new IOException("device (" + device + ") request rejected: " + resp.message); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003468'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'
+ name = 'FileListingService.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003473'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003475'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003477'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347E'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003473'
+ name = 'FileListingService.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003475'
+ name = 'FileListingService.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003477'
+ name = 'FileListingService.java -> Collections' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002296'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347A'
+ name = 'FileListingService.java -> Comparator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003479'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347C'
+ name = 'FileListingService.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347D'
+ name = 'FileListingService.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347E'
+ name = 'FileListingService.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000202F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002031'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002030'
+ name = 'FileListingService' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002032'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Provides {@link Device} side file listing service.
+ <p/>To get an instance for a known {@link Device}, call {@link Device#getFileListingService()}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'
+ name = 'FileEntry' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002034'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represents an entry in a directory. This can be a file or a directory.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002035'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003536'
+ name = 'compare' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003538'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003539'
+ name = 'o1' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353A'
+ name = 'o2' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353B'
+ name = 'compare' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353C'
+ language = 'Java' body = ' if (o1 instanceof FileEntry && o2 instanceof FileEntry) { FileEntry fe1 = (FileEntry)o1; FileEntry fe2 = (FileEntry)o2; return fe1.name.compareTo(fe2.name); } return 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003536'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352E'
+ name = 'sEscapePattern' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003531'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003532'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003533'
+ language = 'Java' body = ' Pattern.compile( "([\\\\()*+?\"'#/\\s])")'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003534'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Pattern to escape filenames for shell command consumption. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000353D'
+ name = 'sEntryComparator' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003540'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003541'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003542'
+ language = 'Java' body = ' new Comparator<FileEntry>() { public int compare(FileEntry o1, FileEntry o2) { if (o1 instanceof FileEntry && o2 instanceof FileEntry) { FileEntry fe1 = (FileEntry)o1; FileEntry fe2 = (FileEntry)o2; return fe1.name.compareTo(fe2.name); } return 0; } }'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003543'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Comparator object for FileEntry</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003479'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003544'
+ name = 'parent' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003547'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003548'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003549'
+ name = 'name' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000354E'
+ name = 'info' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003551'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003552'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003553'
+ name = 'permissions' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003556'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003557'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003558'
+ name = 'size' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000355D'
+ name = 'date' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003560'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003561'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003562'
+ name = 'time' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003565'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003566'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003567'
+ name = 'owner' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356C'
+ name = 'group' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000356F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003570'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003571'
+ name = 'type' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003574'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003575'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003576'
+ name = 'isAppPackage' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003579'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357B'
+ name = 'isRoot' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000357F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003580'
+ name = 'fetchTime' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003583'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003584'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003585'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003586'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Indicates whether the entry content has been fetched yet, or not.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003587'
+ name = 'mChildren' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358C'
+ language = 'Java' body = ' new ArrayList<FileEntry>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358D'
+ name = 'FileEntry' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003593'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>type entry type. Can be one of the following: {@link FileListingService#TYPE_FILE},
+ {@link FileListingService#TYPE_DIRECTORY}, {@link FileListingService#TYPE_OTHER}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003594'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a new file entry.
+@param parent parent entry or null if entry is root
+@param name name of the entry.
+@param type entry type. Can be one of the following: {@link FileListingService#TYPE_FILE},
+ {@link FileListingService#TYPE_DIRECTORY}, {@link FileListingService#TYPE_OTHER}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358F'
+ name = 'parent' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003590'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003591'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003592'
+ name = 'isRoot' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003595'
+ name = 'FileEntry' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003596'
+ language = 'Java' body = ' this.parent = parent; this.name = name; this.type = type; this.isRoot = isRoot; checkAppPackageStatus(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003597'
+ name = 'getName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the entry</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003599'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359B'
+ name = 'getName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359C'
+ language = 'Java' body = ' return name; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003597'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359D'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the size string of the entry, as returned by <code>ls</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A1'
+ name = 'getSize' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A2'
+ language = 'Java' body = ' return size; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A3'
+ name = 'getSizeValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the size of the entry.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A7'
+ name = 'getSizeValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A8'
+ language = 'Java' body = ' return Integer.parseInt(size); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A9'
+ name = 'getDate' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the date string of the entry, as returned by <code>ls</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AD'
+ name = 'getDate' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AE'
+ language = 'Java' body = ' return date; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AF'
+ name = 'getTime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the time string of the entry, as returned by <code>ls</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B3'
+ name = 'getTime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B4'
+ language = 'Java' body = ' return time; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B5'
+ name = 'getPermissions' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the permission string of the entry, as returned by <code>ls</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B9'
+ name = 'getPermissions' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BA'
+ language = 'Java' body = ' return permissions; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BB'
+ name = 'getInfo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the extra info for the entry.
+ <p/>For a link, it will be a description of the link.
+ <p/>For an application apk file it will be the application package as returned
+ by the Package Manager. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BF'
+ name = 'getInfo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C0'
+ language = 'Java' body = ' return info; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C1'
+ name = 'getFullPath' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a path string using {@link FileListingService#FILE_SEPARATOR} as separator.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the full path of the entry.
+@return a path string using {@link FileListingService#FILE_SEPARATOR} as separator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C6'
+ name = 'getFullPath' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C7'
+ language = 'Java' body = ' if (isRoot) { return FILE_ROOT; } StringBuilder pathBuilder = new StringBuilder(); fillPathBuilder(pathBuilder, false); return pathBuilder.toString(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C8'
+ name = 'getFullEscapedPath' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a path string using {@link FileListingService#FILE_SEPARATOR} as separator
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the fully escaped path of the entry. This path is safe to use in a
+ shell command line.
+@return a path string using {@link FileListingService#FILE_SEPARATOR} as separator</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CD'
+ name = 'getFullEscapedPath' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CE'
+ language = 'Java' body = ' StringBuilder pathBuilder = new StringBuilder(); fillPathBuilder(pathBuilder, true); return pathBuilder.toString(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CF'
+ name = 'getPathSegments' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the path as a list of segments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D3'
+ name = 'getPathSegments' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D4'
+ language = 'Java' body = ' ArrayList<String> list = new ArrayList<String>(); fillPathSegments(list); return list.toArray(new String[list.size()]); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035CF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D5'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the entry is a directory, false otherwise;</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D9'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DA'
+ language = 'Java' body = ' return type; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DB'
+ name = 'isDirectory' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the entry is a folder or a link to a folder.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DF'
+ name = 'isDirectory' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E0'
+ language = 'Java' body = ' return type == TYPE_DIRECTORY || type == TYPE_DIRECTORY_LINK; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E1'
+ name = 'getParent' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the parent entry.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E5'
+ name = 'getParent' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E6'
+ language = 'Java' body = ' return parent; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E7'
+ name = 'getCachedChildren' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the cached children of the entry. This returns the cache created from calling
+ <code>FileListingService.getChildren()</code>.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035EB'
+ name = 'getCachedChildren' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035EC'
+ language = 'Java' body = ' return mChildren.toArray(new FileEntry[mChildren.size()]); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035ED'
+ name = 'findChild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name the name of the child to return.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the FileEntry matching the name or null.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the child {@link FileEntry} matching the name.
+ This uses the cached children list.
+@param name the name of the child to return.
+@return the FileEntry matching the name or null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F0'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F4'
+ name = 'findChild' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F5'
+ language = 'Java' body = ' for (FileEntry entry : mChildren) { if (entry.name.equals(name)) { return entry; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035ED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F6'
+ name = 'isRoot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the entry is the root.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FA'
+ name = 'isRoot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FB'
+ language = 'Java' body = ' return isRoot; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FC'
+ name = 'addChild' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FF'
+ name = 'child' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003600'
+ name = 'addChild' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003601'
+ language = 'Java' body = ' mChildren.add(child); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003602'
+ name = 'setChildren' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003604'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003605'
+ name = 'newChildren' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003606'
+ name = 'setChildren' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003607'
+ language = 'Java' body = ' mChildren.clear(); mChildren.addAll(newChildren); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003602'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003608'
+ name = 'needFetch' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360B'
+ name = 'needFetch' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360C'
+ language = 'Java' body = ' if (fetchTime == 0) { return true; } long current = System.currentTimeMillis(); if (current-fetchTime > REFRESH_TEST) { return true; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003608'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360D'
+ name = 'isApplicationPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003610'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the entry is a valid application package.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003611'
+ name = 'isApplicationPackage' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003612'
+ language = 'Java' body = ' return isAppPackage; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003613'
+ name = 'isAppFileName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003616'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns if the file name is an application package name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003615'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003617'
+ name = 'isAppFileName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003618'
+ language = 'Java' body = ' Matcher m = sApkPattern.matcher(name); return m.matches(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003613'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003619'
+ name = 'fillPathBuilder' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003620'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>escapePath Whether the path need to be escaped for consumption by
+ a shell command line.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003621'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Recursively fills the pathBuilder with the full path
+@param pathBuilder a StringBuilder used to create the path.
+@param escapePath Whether the path need to be escaped for consumption by
+ a shell command line.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361E'
+ name = 'pathBuilder' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361F'
+ name = 'escapePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003622'
+ name = 'fillPathBuilder' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003623'
+ language = 'Java' body = ' if (isRoot) { return; } if (parent != null) { parent.fillPathBuilder(pathBuilder, escapePath); } pathBuilder.append(FILE_SEPARATOR); pathBuilder.append(escapePath ? escape(name) : name); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003619'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003624'
+ name = 'fillPathSegments' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003628'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>list The list of segments to fill.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003629'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Recursively fills the segment list with the full path.
+@param list The list of segments to fill.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003626'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003627'
+ name = 'list' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362A'
+ name = 'fillPathSegments' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362B'
+ language = 'Java' body = ' if (isRoot) { return; } if (parent != null) { parent.fillPathSegments(list); } list.add(name); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003624'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362C'
+ name = 'checkAppPackageStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the internal app package status flag. This checks whether the entry is in an app
+ directory like /data/app or /system/app</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003630'
+ name = 'checkAppPackageStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003631'
+ language = 'Java' body = ' isAppPackage = false; String[] segments = getPathSegments(); if (type == TYPE_FILE && segments.length == 3 && isAppFileName()) { isAppPackage = DIRECTORY_APP.equals(segments[1]) && (DIRECTORY_SYSTEM.equals(segments[0]) || DIRECTORY_DATA.equals(segments[0])); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003632'
+ name = 'escape' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003636'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>entryName
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003637'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an escaped version of the entry name.
+@param entryName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003634'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003635'
+ name = 'entryName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003638'
+ name = 'escape' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003639'
+ language = 'Java' body = ' return sEscapePattern.matcher(entryName).replaceAll("\\\\$1"); //$NON-NLS-1$ '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003632'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002036'
+ name = 'LsReceiver' visibility = 'private' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002037'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>entryName
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002038'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an escaped version of the entry name.
+@param entryName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363B'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363C'
+ name = 'mEntryList' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003640'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003641'
+ name = 'mLinkList' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003644'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003645'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003646'
+ name = 'mCurrentChildren' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003649'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364B'
+ name = 'mParentEntry' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000364F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003650'
+ name = 'LsReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003655'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>linkList the list of link path to compute post ls, to figure
+ out if the link pointed to a file or to a directory.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003656'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create an ls receiver/parser.
+@param currentChildren The list of current children. To prevent
+ collapse during update, reusing the same FileEntry objects for
+ files that were already there is paramount.
+@param entryList the list of new children to be filled by the
+ receiver.
+@param linkList the list of link path to compute post ls, to figure
+ out if the link pointed to a file or to a directory.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003652'
+ name = 'parentEntry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003653'
+ name = 'entryList' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003654'
+ name = 'linkList' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003657'
+ name = 'LsReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003658'
+ language = 'Java' body = ' mParentEntry = parentEntry; mCurrentChildren = parentEntry.getCachedChildren(); mEntryList = entryList; mLinkList = linkList; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003650'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003659'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365C'
+ name = 'lines' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365D'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365E'
+ language = 'Java' body = ' for (String line : lines) { // no need to handle empty lines. if (line.length() == 0) { continue; } // run the line through the regexp Matcher m = sLsPattern.matcher(line); if (m.matches() == false) { continue; } // get the name String name = m.group(7); // if the parent is root, we only accept selected items if (mParentEntry.isRoot()) { boolean found = false; for (String approved : sRootLevelApprovedItems) { if (approved.equals(name)) { found = true; break; } } // if it's not in the approved list we skip this entry. if (found == false) { continue; } } // get the rest of the groups String permissions = m.group(1); String owner = m.group(2); String group = m.group(3); String size = m.group(4); String date = m.group(5); String time = m.group(6); String info = null; // and the type int objectType = TYPE_OTHER; switch (permissions.charAt(0)) { case '-' : objectType = TYPE_FILE; break; case 'b' : objectType = TYPE_BLOCK; break; case 'c' : objectType = TYPE_CHARACTER; break; case 'd' : objectType = TYPE_DIRECTORY; break; case 'l' : objectType = TYPE_LINK; break; case 's' : objectType = TYPE_SOCKET; break; case 'p' : objectType = TYPE_FIFO; break; } // now check what we may be linking to if (objectType == TYPE_LINK) { String[] segments = name.split("\\s->\\s"); //$NON-NLS-1$ // we should have 2 segments if (segments.length == 2) { // update the entry name to not contain the link name = segments[0]; // and the link name info = segments[1]; // now get the path to the link String[] pathSegments = info.split(FILE_SEPARATOR); if (pathSegments.length == 1) { // the link is to something in the same directory, // unless the link is .. if ("..".equals(pathSegments[0])) { //$NON-NLS-1$ // set the type and we're done. objectType = TYPE_DIRECTORY_LINK; } else { // either we found the object already // or we'll find it later. } } } // add an arrow in front to specify it's a link. info = "-> " + info; //$NON-NLS-1$; } // get the entry, either from an existing one, or a new one FileEntry entry = getExistingEntry(name); if (entry == null) { entry = new FileEntry(mParentEntry, name, objectType, false /* isRoot */); } // add some misc info entry.permissions = permissions; entry.size = size; entry.date = date; entry.time = time; entry.owner = owner; entry.group = group; if (objectType == TYPE_LINK) { entry.info = info; } mEntryList.add(entry); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003659'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365F'
+ name = 'getExistingEntry' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003663'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>name the name of the entry
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003664'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the existing FileEntry or null if no entry with a matching
+ name exists.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003665'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Queries for an already existing Entry per name
+@param name the name of the entry
+@return the existing FileEntry or null if no entry with a matching
+ name exists.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003661'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003662'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003666'
+ name = 'getExistingEntry' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003667'
+ language = 'Java' body = ' for (int i = 0 ; i < mCurrentChildren.length; i++) { FileEntry e = mCurrentChildren[i]; // since we're going to "erase" the one we use, we need to // check that the item is not null. if (e != null) { // compare per name, case-sensitive. if (name.equals(e.name)) { // erase from the list mCurrentChildren[i] = null; // and return the object return e; } } } // couldn't find any matching object, return null return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003668'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366B'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366C'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003668'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366D'
+ name = 'finishLinks' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003670'
+ name = 'finishLinks' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003671'
+ language = 'Java' body = ' // TODO Handle links in the listing service '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002039'
+ name = 'IListingReceiver' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>FileListingService#getChildren(com.android.ddmlib.FileListingService.FileEntry, boolean, com.android.ddmlib.FileListingService.IListingReceiver)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide a method that deals with asynchronous
+ result from <code>ls</code> command on the device.
+
+@see FileListingService#getChildren(com.android.ddmlib.FileListingService.FileEntry, boolean, com.android.ddmlib.FileListingService.IListingReceiver)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003673'
+ name = 'setChildren' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003675'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003676'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003677'
+ name = 'children' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003678'
+ name = 'refreshEntry' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367B'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002040'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368D'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002041'
+ name = '2' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368F'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003480'
+ name = 'sApkPattern' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003483'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003484'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003485'
+ language = 'Java' body = ' Pattern.compile(".*\\.apk", Pattern.CASE_INSENSITIVE)'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003486'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Pattern to find filenames that match "*.apk" *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003487'
+ name = 'PM_FULL_LISTING' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348C'
+ language = 'Java' body = ' "pm list packages -f"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000348D'
+ name = 'sPmPattern' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003490'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003491'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003492'
+ language = 'Java' body = ' Pattern.compile("^package:(.+?)=(.+)$")'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003493'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Pattern to parse the output of the 'pm -lf' command.<br>
+ The output format looks like:<br>
+ /data/app/myapp.apk=com.mypackage.myapp *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003494'
+ name = 'DIRECTORY_DATA' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003497'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003498'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003499'
+ language = 'Java' body = ' "data"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Top level data folder. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349B'
+ name = 'DIRECTORY_SDCARD' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000349F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A0'
+ language = 'Java' body = ' "sdcard"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Top level sdcard folder. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A2'
+ name = 'DIRECTORY_SYSTEM' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A7'
+ language = 'Java' body = ' "system"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Top level system folder. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034A9'
+ name = 'DIRECTORY_TEMP' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AE'
+ language = 'Java' body = ' "tmp"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034AF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Top level temp folder. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B0'
+ name = 'DIRECTORY_APP' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B5'
+ language = 'Java' body = ' "app"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Application folder. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034B7'
+ name = 'sRootLevelApprovedItems' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BC'
+ language = 'Java' body = ' { DIRECTORY_DATA, DIRECTORY_SDCARD, DIRECTORY_SYSTEM, DIRECTORY_TEMP }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034BD'
+ name = 'REFRESH_RATE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C2'
+ language = 'Java' body = ' 5000L'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C3'
+ name = 'REFRESH_TEST' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C8'
+ language = 'Java' body = ' (long)(REFRESH_RATE * .8)'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034C9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Refresh test has to be slightly lower for precision issue.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CA'
+ name = 'TYPE_FILE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034CF'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: File *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D1'
+ name = 'TYPE_DIRECTORY' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D6'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Directory *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034D8'
+ name = 'TYPE_DIRECTORY_LINK' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DD'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Directory Link *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034DF'
+ name = 'TYPE_BLOCK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E4'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Block *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E6'
+ name = 'TYPE_CHARACTER' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034E9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034EA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034EB'
+ language = 'Java' body = ' 4'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Character *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034ED'
+ name = 'TYPE_LINK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F2'
+ language = 'Java' body = ' 5'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Link *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F4'
+ name = 'TYPE_SOCKET' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034F9'
+ language = 'Java' body = ' 6'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Socket *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FB'
+ name = 'TYPE_FIFO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000034FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003500'
+ language = 'Java' body = ' 7'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003501'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: FIFO *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003502'
+ name = 'TYPE_OTHER' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003505'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003506'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003507'
+ language = 'Java' body = ' 8'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003508'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Entry type: Other *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003509'
+ name = 'FILE_SEPARATOR' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350E'
+ language = 'Java' body = ' "/"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000350F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Device side file separator. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003510'
+ name = 'FILE_ROOT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003513'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003514'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003515'
+ language = 'Java' body = ' "/"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003516'
+ name = 'sLsPattern' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003519'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351B'
+ language = 'Java' body = ' Pattern.compile( "^([bcdlsp-][-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xstST])\\s+(\\S+)\\s+(\\S+)\\s+([\\d\\s,]*)\\s+(\\d{4}-\\d\\d-\\d\\d)\\s+(\\d\\d:\\d\\d)\\s+(.*)$")'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Regexp pattern to parse the result from ls.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000351D'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003520'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003521'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003522'
+ name = 'mRoot' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003525'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003526'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003527'
+ name = 'mThreadList' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352C'
+ language = 'Java' body = ' new ArrayList<Thread>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367C'
+ name = 'FileListingService' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device The Device the service is connected to.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003680'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a File Listing Service for a specified {@link Device}.
+@param device The Device the service is connected to.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367E'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003681'
+ name = 'FileListingService' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003682'
+ language = 'Java' body = ' mDevice = device; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003683'
+ name = 'getRoot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003686'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link FileEntry} object representing the root element or
+ <code>null</code> if the device is invalid.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003687'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the root element.
+@return the {@link FileEntry} object representing the root element or
+ <code>null</code> if the device is invalid.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003685'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003688'
+ name = 'getRoot' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003689'
+ language = 'Java' body = ' if (mDevice != null) { if (mRoot == null) { mRoot = new FileEntry(null /* parent */, "" /* name */, TYPE_DIRECTORY, true /* isRoot */); } return mRoot; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003683'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003690'
+ name = 'getChildren' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003696'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>receiver A receiver for asynchronous calls.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003697'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>The list of children or <code>null</code> for asynchronous calls.
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003698'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>FileEntry#getCachedChildren()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003699'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the children of a {@link FileEntry}.
+ <p/>
+ This method supports a cache mechanism and synchronous and asynchronous modes.
+ <p/>
+ If <var>receiver</var> is <code>null</code>, the device side <code>ls</code>
+ command is done synchronously, and the method will return upon completion of the command.<br>
+ If <var>receiver</var> is non <code>null</code>, the command is launched is a separate
+ thread and upon completion, the receiver will be notified of the result.
+ <p/>
+ The result for each <code>ls</code> command is cached in the parent
+ <code>FileEntry</code>. <var>useCache</var> allows usage of this cache, but only if the
+ cache is valid. The cache is valid only for {@link FileListingService#REFRESH_RATE} ms.
+ After that a new <code>ls</code> command is always executed.
+ <p/>
+ If the cache is valid and <code>useCache == true</code>, the method will always simply
+ return the value of the cache, whether a {@link IListingReceiver} has been provided or not.
+
+@param entry The parent entry.
+@param useCache A flag to use the cache or to force a new ls command.
+@param receiver A receiver for asynchronous calls.
+@return The list of children or <code>null</code> for asynchronous calls.
+
+@see FileEntry#getCachedChildren()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003692'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003693'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003694'
+ name = 'useCache' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003695'
+ name = 'receiver' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002039'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369A'
+ name = 'getChildren' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369B'
+ language = 'Java' body = ' // first thing we do is check the cache, and if we already have a recent // enough children list, we just return that. if (useCache && entry.needFetch() == false) { return entry.getCachedChildren(); } // if there's no receiver, then this is a synchronous call, and we // return the result of ls if (receiver == null) { doLs(entry); return entry.getCachedChildren(); } // this is a asynchronous call. // we launch a thread that will do ls and give the listing // to the receiver Thread t = new Thread("ls " + entry.getFullPath()) { //$NON-NLS-1$ @Override public void run() { doLs(entry); receiver.setChildren(entry, entry.getCachedChildren()); final FileEntry[] children = entry.getCachedChildren(); if (children.length > 0 && children[0].isApplicationPackage()) { final HashMap<String, FileEntry> map = new HashMap<String, FileEntry>(); for (FileEntry child : children) { String path = child.getFullPath(); map.put(path, child); } // call pm. String command = PM_FULL_LISTING; try { mDevice.executeShellCommand(command, new MultiLineReceiver() { @Override public void processNewLines(String[] lines) { for (String line : lines) { if (line.length() > 0) { // get the filepath and package from the line Matcher m = sPmPattern.matcher(line); if (m.matches()) { // get the children with that path FileEntry entry = map.get(m.group(1)); if (entry != null) { entry.info = m.group(2); receiver.refreshEntry(entry); } } } } } public boolean isCancelled() { return false; } }); } catch (IOException e) { // adb failed somehow, we do nothing. } } // if another thread is pending, launch it synchronized (mThreadList) { // first remove ourselves from the list mThreadList.remove(this); // then launch the next one if applicable. if (mThreadList.size() > 0) { Thread t = mThreadList.get(0); t.start(); } } } }; // we don't want to run multiple ls on the device at the same time, so we // store the thread in a list and launch it only if there's no other thread running. // the thread will launch the next one once it's done. synchronized (mThreadList) { // add to the list mThreadList.add(t); // if it's the only one, launch it. if (mThreadList.size() == 1) { t.start(); } } // and we return null. return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003690'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369C'
+ name = 'doLs' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369F'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002033'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A0'
+ name = 'doLs' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A1'
+ language = 'Java' body = ' // create a list that will receive the list of the entries ArrayList<FileEntry> entryList = new ArrayList<FileEntry>(); // create a list that will receive the link to compute post ls; ArrayList<String> linkList = new ArrayList<String>(); try { // create the command String command = "ls -l " + entry.getFullPath(); //$NON-NLS-1$ // create the receiver object that will parse the result from ls LsReceiver receiver = new LsReceiver(entry, entryList, linkList); // call ls. mDevice.executeShellCommand(command, receiver); // finish the process of the receiver to handle links receiver.finishLinks(); } catch (IOException e) { } // at this point we need to refresh the viewer entry.fetchTime = System.currentTimeMillis(); // sort the children and set them as the new children Collections.sort(entryList, FileEntry.sEntryComparator); entry.setChildren(entryList); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002042'
+ name = 'IDevice.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A4'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A6'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A3'
+ name = 'IDevice.java -> LogReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002042'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A4'
+ name = 'IDevice.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002042'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A6'
+ name = 'IDevice.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002042'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002044'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002057'
+ name = 'NativeLibraryMapInfo.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002059'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002058'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002058'
+ name = 'NativeLibraryMapInfo' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Memory address to library mapping for native libraries.
+ <p/>
+ Each instance represents a single native library and its start and end memory addresses. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A6'
+ name = 'mStartAddr' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AB'
+ name = 'mEndAddr' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037AF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B0'
+ name = 'mLibrary' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B5'
+ name = 'NativeLibraryMapInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>library The name of the library.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new native library map info.
+@param startAddr The start address of the library.
+@param endAddr The end address of the library.
+@param library The name of the library.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B7'
+ name = 'startAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B8'
+ name = 'endAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B9'
+ name = 'library' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BC'
+ name = 'NativeLibraryMapInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BD'
+ language = 'Java' body = ' this.mStartAddr = startAddr; this.mEndAddr = endAddr; this.mLibrary = library; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BE'
+ name = 'getLibraryName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the name of the library.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C2'
+ name = 'getLibraryName' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C3'
+ language = 'Java' body = ' return mLibrary; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C4'
+ name = 'getStartAddress' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the start address of the library.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C8'
+ name = 'getStartAddress' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C9'
+ language = 'Java' body = ' return mStartAddr; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CA'
+ name = 'getEndAddress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the end address of the library.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CE'
+ name = 'getEndAddress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CF'
+ language = 'Java' body = ' return mEndAddr; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D0'
+ name = 'isWithinLibrary' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>address The address to test.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if the address is between the start and end address of the library.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getEndAddress()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the specified address is inside the library.
+@param address The address to test.
+@return <code>true</code> if the address is between the start and end address of the library.
+@see #getStartAddress()
+@see #getEndAddress()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D3'
+ name = 'address' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D8'
+ name = 'isWithinLibrary' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D9'
+ language = 'Java' body = ' return address >= mStartAddr && address <= mEndAddr; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'
+ name = 'Debugger.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DB'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DC'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E0'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E1'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E2'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E3'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E4'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E6'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DB'
+ name = 'Debugger.java -> DebuggerStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DC'
+ name = 'Debugger.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DE'
+ name = 'Debugger.java -> InetAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E0'
+ name = 'Debugger.java -> InetSocketAddress' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E1'
+ name = 'Debugger.java -> BufferOverflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E2'
+ name = 'Debugger.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E3'
+ name = 'Debugger.java -> SelectionKey' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E4'
+ name = 'Debugger.java -> Selector' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E5'
+ name = 'Debugger.java -> ServerSocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E6'
+ name = 'Debugger.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205B'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205D'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205C'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205C'
+ name = 'Debugger' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ This represents a pending or established connection with a JDWP debugger.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E8'
+ name = 'INITIAL_BUF_SIZE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037EB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037EC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037ED'
+ language = 'Java' body = ' 1 * 1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037EE'
+ name = 'MAX_BUF_SIZE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F3'
+ language = 'Java' body = ' 32 * 1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F4'
+ name = 'mReadBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037F9'
+ name = 'PRE_DATA_BUF_SIZE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FE'
+ language = 'Java' body = ' 256'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037FF'
+ name = 'mPreDataBuffer' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003802'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003803'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003804'
+ name = 'mConnState' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003807'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003808'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003809'
+ name = 'ST_NOT_CONNECTED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380E'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000380F'
+ name = 'ST_AWAIT_SHAKE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003812'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003813'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003814'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003815'
+ name = 'ST_READY' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003818'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003819'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381A'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381B'
+ name = 'mClient' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000381F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003820'
+ name = 'mListenPort' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003823'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003824'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003825'
+ name = 'mListenChannel' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003828'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003829'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382A'
+ name = 'mChannel' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382F'
+ name = 'Debugger' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003833'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create a new Debugger object, configured to listen for connections
+ on a specific port.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003831'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003832'
+ name = 'listenPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003834'
+ name = 'Debugger' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003835'
+ language = 'Java' body = ' mClient = client; mListenPort = listenPort; mListenChannel = ServerSocketChannel.open(); mListenChannel.configureBlocking(false); // required for Selector InetSocketAddress addr = new InetSocketAddress( InetAddress.getByName("localhost"), // $NON-NLS-1$ listenPort); mListenChannel.socket().setReuseAddress(true); // enable SO_REUSEADDR mListenChannel.socket().bind(addr); mReadBuffer = ByteBuffer.allocate(INITIAL_BUF_SIZE); mPreDataBuffer = ByteBuffer.allocate(PRE_DATA_BUF_SIZE); mConnState = ST_NOT_CONNECTED; Log.d("ddms", "Created: " + this.toString()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000382F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003836'
+ name = 'isDebuggerAttached' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003839'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if a debugger is currently attached to us.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003838'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383A'
+ name = 'isDebuggerAttached' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383B'
+ language = 'Java' body = ' return mChannel != null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003836'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383C'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represent the Debugger as a string.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003840'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003841'
+ language = 'Java' body = ' // mChannel != null means we have connection, ST_READY means it's going return "[Debugger " + mListenPort + "-->" + mClient.getClientData().getPid() + ((mConnState != ST_READY) ? " inactive]" : " active]"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003842'
+ name = 'registerListener' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003846'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register the debugger's listen socket with the Selector.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003844'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003845'
+ name = 'sel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003847'
+ name = 'registerListener' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003848'
+ language = 'Java' body = ' mListenChannel.register(sel, SelectionKey.OP_ACCEPT, this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003842'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003849'
+ name = 'getClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the Client being debugged.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384D'
+ name = 'getClient' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384E'
+ language = 'Java' body = ' return mClient; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003849'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384F'
+ name = 'accept' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003852'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Accept a new connection, but only if we don't already have one.
+
+ Must be synchronized with other uses of mChannel and mPreBuffer.
+
+ Returns "null" if we're already talking to somebody.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003851'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003853'
+ name = 'accept' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003854'
+ language = 'Java' body = ' return accept(mListenChannel); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003855'
+ name = 'accept' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003859'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Accept a new connection from the specified listen channel. This
+ is so we can listen on a dedicated port for the "current" client,
+ where "current" is constantly in flux.
+
+ Must be synchronized with other uses of mChannel and mPreBuffer.
+
+ Returns "null" if we're already talking to somebody.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003857'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003858'
+ name = 'listenChan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385A'
+ name = 'accept' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385B'
+ language = 'Java' body = ' if (listenChan != null) { SocketChannel newChan; newChan = listenChan.accept(); if (mChannel != null) { Log.w("ddms", "debugger already talking to " + mClient + " on " + mListenPort); newChan.close(); return null; } mChannel = newChan; mChannel.configureBlocking(false); // required for Selector mConnState = ST_AWAIT_SHAKE; return mChannel; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003855'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385C'
+ name = 'closeData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Close the data connection only.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003860'
+ name = 'closeData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003861'
+ language = 'Java' body = ' try { if (mChannel != null) { mChannel.close(); mChannel = null; mConnState = ST_NOT_CONNECTED; ClientData cd = mClient.getClientData(); cd.setDebuggerConnectionStatus(DebuggerStatus.DEFAULT); mClient.update(Client.CHANGE_DEBUGGER_STATUS); } } catch (IOException ioe) { Log.w("ddms", "Failed to close data " + this); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003862'
+ name = 'close' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003865'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Close the socket that's listening for new connections and (if
+ we're connected) the debugger data socket.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003864'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003866'
+ name = 'close' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003867'
+ language = 'Java' body = ' try { if (mListenChannel != null) { mListenChannel.close(); } mListenChannel = null; closeData(); } catch (IOException ioe) { Log.w("ddms", "Failed to close listener " + this); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003862'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003868'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Read data from our channel.
+
+ This is called when data is known to be available, and we don't yet
+ have a full packet in the buffer. If the buffer is at capacity,
+ expand it.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386C'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386D'
+ language = 'Java' body = ' int count; if (mReadBuffer.position() == mReadBuffer.capacity()) { if (mReadBuffer.capacity() * 2 > MAX_BUF_SIZE) { throw new BufferOverflowException(); } Log.d("ddms", "Expanding read buffer to " + mReadBuffer.capacity() * 2); ByteBuffer newBuffer = ByteBuffer.allocate(mReadBuffer.capacity() * 2); mReadBuffer.position(0); newBuffer.put(mReadBuffer); // leaves "position" at end mReadBuffer = newBuffer; } count = mChannel.read(mReadBuffer); Log.v("ddms", "Read " + count + " bytes from " + this); if (count < 0) throw new IOException("read failed"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003868'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386E'
+ name = 'getJdwpPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003871'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return information for the first full JDWP packet in the buffer.
+
+ If we don't yet have a full packet, return null.
+
+ If we haven't yet received the JDWP handshake, we watch for it here
+ and consume it without admitting to have done so. We also send
+ the handshake response to the debugger, along with any pending
+ pre-connection data, which is why this can throw an IOException.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003870'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003872'
+ name = 'getJdwpPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003873'
+ language = 'Java' body = ' /* * On entry, the data starts at offset 0 and ends at "position". * "limit" is set to the buffer capacity. */ if (mConnState == ST_AWAIT_SHAKE) { int result; result = JdwpPacket.findHandshake(mReadBuffer); //Log.v("ddms", "findHand: " + result); switch (result) { case JdwpPacket.HANDSHAKE_GOOD: Log.d("ddms", "Good handshake from debugger"); JdwpPacket.consumeHandshake(mReadBuffer); sendHandshake(); mConnState = ST_READY; ClientData cd = mClient.getClientData(); cd.setDebuggerConnectionStatus(DebuggerStatus.ATTACHED); mClient.update(Client.CHANGE_DEBUGGER_STATUS); // see if we have another packet in the buffer return getJdwpPacket(); case JdwpPacket.HANDSHAKE_BAD: // not a debugger, throw an exception so we drop the line Log.d("ddms", "Bad handshake from debugger"); throw new IOException("bad handshake"); case JdwpPacket.HANDSHAKE_NOTYET: break; default: Log.e("ddms", "Unknown packet while waiting for client handshake"); } return null; } else if (mConnState == ST_READY) { if (mReadBuffer.position() != 0) { Log.v("ddms", "Checking " + mReadBuffer.position() + " bytes"); } return JdwpPacket.findPacket(mReadBuffer); } else { Log.e("ddms", "Receiving data in state = " + mConnState); } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003874'
+ name = 'forwardPacketToClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003878'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Forward a packet to the client.
+
+ "mClient" will never be null, though it's possible that the channel
+ in the client has closed and our send attempt will fail.
+
+ Consumes the packet.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003876'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003877'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003879'
+ name = 'forwardPacketToClient' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387A'
+ language = 'Java' body = ' mClient.sendAndConsume(packet); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003874'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387B'
+ name = 'sendHandshake' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send the handshake to the debugger. We also send along any packets
+ we already received from the client (usually just a VM_START event,
+ if anything at all).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387F'
+ name = 'sendHandshake' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003880'
+ language = 'Java' body = ' ByteBuffer tempBuffer = ByteBuffer.allocate(JdwpPacket.HANDSHAKE_LEN); JdwpPacket.putHandshake(tempBuffer); int expectedLength = tempBuffer.position(); tempBuffer.flip(); if (mChannel.write(tempBuffer) != expectedLength) { throw new IOException("partial handshake write"); } expectedLength = mPreDataBuffer.position(); if (expectedLength > 0) { Log.d("ddms", "Sending " + mPreDataBuffer.position() + " bytes of saved data"); mPreDataBuffer.flip(); if (mChannel.write(mPreDataBuffer) != expectedLength) { throw new IOException("partial pre-data write"); } mPreDataBuffer.clear(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003881'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003885'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a packet to the debugger.
+
+ Ideally, we can do this with a single channel write. If that doesn't
+ happen, we have to prevent anybody else from writing to the channel
+ until this packet completes, so we synchronize on the channel.
+
+ Another goal is to avoid unnecessary buffer copies, so we write
+ directly out of the JdwpPacket's ByteBuffer.
+
+ We must synchronize on "mChannel" before writing to it. We want to
+ coordinate the buffered data with mChannel creation, so this whole
+ method is synchronized.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003883'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003884'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003886'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003887'
+ language = 'Java' body = ' if (mChannel == null) { /* * Buffer this up so we can send it to the debugger when it * finally does connect. This is essential because the VM_START * message might be telling the debugger that the VM is * suspended. The alternative approach would be for us to * capture and interpret VM_START and send it later if we * didn't choose to un-suspend the VM for our own purposes. */ Log.d("ddms", "Saving packet 0x" + Integer.toHexString(packet.getId())); packet.movePacket(mPreDataBuffer); } else { packet.writeAndConsume(mChannel); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003881'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205F'
+ name = 'DdmConstants.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002061'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002060'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002060'
+ name = 'DdmConstants' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388A'
+ name = 'PLATFORM_UNKNOWN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000388F'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003890'
+ name = 'PLATFORM_LINUX' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003893'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003894'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003895'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003896'
+ name = 'PLATFORM_WINDOWS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003899'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389B'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389C'
+ name = 'PLATFORM_DARWIN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000389F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A1'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A2'
+ name = 'CURRENT_PLATFORM' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A7'
+ language = 'Java' body = ' currentPlatform()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns current platform, one of {@link #PLATFORM_WINDOWS}, {@link #PLATFORM_DARWIN},
+ {@link #PLATFORM_LINUX} or {@link #PLATFORM_UNKNOWN}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038A9'
+ name = 'FN_HPROF_CONVERTER' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AE'
+ language = 'Java' body = ' (CURRENT_PLATFORM == PLATFORM_WINDOWS) ? "hprof-conv.exe" : "hprof-conv"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038AF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> hprof-conv executable (with extension for the current OS) *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B0'
+ name = 'FN_TRACEVIEW' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B5'
+ language = 'Java' body = ' (CURRENT_PLATFORM == PLATFORM_WINDOWS) ? "traceview.bat" : "traceview"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> traceview executable (with extension for the current OS) *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B7'
+ name = 'currentPlatform' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>one of {@link #PLATFORM_WINDOWS}, {@link #PLATFORM_DARWIN},
+ {@link #PLATFORM_LINUX} or {@link #PLATFORM_UNKNOWN}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns current platform
+
+@return one of {@link #PLATFORM_WINDOWS}, {@link #PLATFORM_DARWIN},
+ {@link #PLATFORM_LINUX} or {@link #PLATFORM_UNKNOWN}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BC'
+ name = 'currentPlatform' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BD'
+ language = 'Java' body = ' String os = System.getProperty("os.name"); //$NON-NLS-1$ if (os.startsWith("Mac OS")) { //$NON-NLS-1$ return PLATFORM_DARWIN; } else if (os.startsWith("Windows")) { //$NON-NLS-1$ return PLATFORM_WINDOWS; } else if (os.startsWith("Linux")) { //$NON-NLS-1$ return PLATFORM_LINUX; } return PLATFORM_UNKNOWN; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002062'
+ name = 'ChunkHandler.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BF'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C0'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C1'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C2'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038BF'
+ name = 'ChunkHandler.java -> IDebugPortProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002062'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C0'
+ name = 'ChunkHandler.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002062'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C1'
+ name = 'ChunkHandler.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002062'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C2'
+ name = 'ChunkHandler.java -> ByteOrder' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002062'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002064'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'
+ name = 'ChunkHandler' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002065'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Subclass this with a class that handles one or more chunk types.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C4'
+ name = 'CHUNK_HEADER_LEN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C9'
+ language = 'Java' body = ' 8'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CA'
+ name = 'CHUNK_ORDER' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038CF'
+ language = 'Java' body = ' ByteOrder.BIG_ENDIAN'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D0'
+ name = 'CHUNK_FAIL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D5'
+ language = 'Java' body = ' type("FAIL")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D6'
+ name = 'ChunkHandler' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D8'
+ name = 'ChunkHandler' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D9'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DA'
+ name = 'clientReady' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'true'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready. The monitor thread calls this method on all
+ handlers when the client is determined to be DDM-aware (usually
+ after receiving a HELO response.)
+
+ The handler can use this opportunity to initialize client-side
+ activity. Because there's a fair chance we'll want to send a
+ message to the client, this method can throw an IOException.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DD'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DF'
+ name = 'clientDisconnected' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client has gone away. Can be used to clean up any resources
+ associated with this client connection.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E2'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E4'
+ name = 'handleChunk' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'true'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle an incoming chunk. The data, of chunk type "type", begins
+ at the start of "data" and continues to data.limit().
+
+ If "isReply" is set, then "msgId" will be the ID of the request
+ we sent to the client. Otherwise, it's the ID generated by the
+ client for this event. Note that it's possible to receive chunks
+ in reply packets for which we are not registered.
+
+ The handler may not modify the contents of "data".</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E7'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E8'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E9'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038EA'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038EB'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038ED'
+ name = 'handleUnknownChunk' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle chunks not recognized by handlers. The handleChunk() method
+ in sub-classes should call this if the chunk type isn't recognized.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F0'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F1'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F2'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F3'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F4'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F6'
+ name = 'handleUnknownChunk' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F7'
+ language = 'Java' body = ' if (type == CHUNK_FAIL) { int errorCode, msgLen; String msg; errorCode = data.getInt(); msgLen = data.getInt(); msg = getString(data, msgLen); Log.w("ddms", "WARNING: failure code=" + errorCode + " msg=" + msg); } else { Log.w("ddms", "WARNING: received unknown chunk " + name(type) + ": len=" + data.limit() + ", reply=" + isReply + ", msgId=0x" + Integer.toHexString(msgId)); } Log.w("ddms", " client " + client + ", handler " + this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038ED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F8'
+ name = 'getString' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Utility function to copy a String out of a ByteBuffer.
+
+ This is here because multiple chunk handlers can make use of it,
+ and there's nowhere better to put it.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FB'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FC'
+ name = 'len' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FE'
+ name = 'getString' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038FF'
+ language = 'Java' body = ' char[] data = new char[len]; for (int i = 0; i < len; i++) data[i] = buf.getChar(); return new String(data); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003900'
+ name = 'putString' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003905'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Utility function to copy a String into a ByteBuffer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003902'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003903'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003904'
+ name = 'str' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003906'
+ name = 'putString' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003907'
+ language = 'Java' body = ' int len = str.length(); for (int i = 0; i < len; i++) buf.putChar(str.charAt(i)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003900'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003908'
+ name = 'type' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Convert a 4-character string to a 32-bit type.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390B'
+ name = 'typeName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390D'
+ name = 'type' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390E'
+ language = 'Java' body = ' int val = 0; if (typeName.length() != 4) { Log.e("ddms", "Type name must be 4 letter long"); throw new RuntimeException("Type name must be 4 letter long"); } for (int i = 0; i < 4; i++) { val <<= 8; val |= (byte) typeName.charAt(i); } return val; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003908'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390F'
+ name = 'name' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003913'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Convert an integer type to a 4-character string.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003911'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003912'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003914'
+ name = 'name' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003915'
+ language = 'Java' body = ' char[] ascii = new char[4]; ascii[0] = (char) ((type >> 24) & 0xff); ascii[1] = (char) ((type >> 16) & 0xff); ascii[2] = (char) ((type >> 8) & 0xff); ascii[3] = (char) (type & 0xff); return new String(ascii); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000390F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003916'
+ name = 'allocBuffer' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Allocate a ByteBuffer with enough space to hold the JDWP packet
+ header and one chunk header in addition to the demands of the
+ chunk being created.
+
+ "maxChunkLen" indicates the size of the chunk contents only.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003918'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003919'
+ name = 'maxChunkLen' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391B'
+ name = 'allocBuffer' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391C'
+ language = 'Java' body = ' ByteBuffer buf = ByteBuffer.allocate(JdwpPacket.JDWP_HEADER_LEN + 8 +maxChunkLen); buf.order(CHUNK_ORDER); return buf; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003916'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391D'
+ name = 'getChunkDataBuf' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003921'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the slice of the JDWP packet buffer that holds just the
+ chunk data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003920'
+ name = 'jdwpBuf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003922'
+ name = 'getChunkDataBuf' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003923'
+ language = 'Java' body = ' ByteBuffer slice; assert jdwpBuf.position() == 0; jdwpBuf.position(JdwpPacket.JDWP_HEADER_LEN + CHUNK_HEADER_LEN); slice = jdwpBuf.slice(); slice.order(CHUNK_ORDER); jdwpBuf.position(0); return slice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003924'
+ name = 'finishChunkPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Write the chunk header at the start of the chunk.
+
+ Pass in the byte buffer returned by JdwpPacket.getPayload().</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003926'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003927'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003928'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003929'
+ name = 'chunkLen' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392B'
+ name = 'finishChunkPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392C'
+ language = 'Java' body = ' ByteBuffer buf = packet.getPayload(); buf.putInt(0x00, type); buf.putInt(0x04, chunkLen); packet.finishPacket(CHUNK_HEADER_LEN + chunkLen); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003924'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392D'
+ name = 'checkDebuggerPortForAppName' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003932'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>appName
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003933'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003934'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Check that the client is opened with the proper debugger port for the
+ specified application name, and if not, reopen it.
+@param client
+@param uiThread
+@param appName
+@return
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003930'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003931'
+ name = 'appName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003935'
+ name = 'checkDebuggerPortForAppName' visibility = 'protected' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003936'
+ language = 'Java' body = ' IDebugPortProvider provider = DebugPortManager.getProvider(); if (provider != null) { Device device = client.getDeviceImpl(); int newPort = provider.getPort(device, appName); if (newPort != IDebugPortProvider.NO_STATIC_PORT && newPort != client.getDebuggerListenPort()) { AndroidDebugBridge bridge = AndroidDebugBridge.getBridge(); if (bridge != null) { DeviceMonitor deviceMonitor = bridge.getDeviceMonitor(); if (deviceMonitor != null) { deviceMonitor.addClientToDropAndReopen(client, newPort); client = null; } } } } return client; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002066'
+ name = 'ThreadInfo.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002068'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002067'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002067'
+ name = 'ThreadInfo' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003939'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002069'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Holds a thread information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393A'
+ name = 'mThreadId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000393F'
+ name = 'mThreadName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003942'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003943'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003944'
+ name = 'mStatus' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003947'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003948'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003949'
+ name = 'mTid' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000394E'
+ name = 'mUtime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003951'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003952'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003953'
+ name = 'mStime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003956'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003957'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003958'
+ name = 'mIsDaemon' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000395D'
+ name = 'mTrace' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003960'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003961'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003962'
+ name = 'mTraceTime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003965'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003966'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003967'
+ name = 'ThreadInfo' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Construct with basic identification.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003969'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396A'
+ name = 'threadName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396C'
+ name = 'ThreadInfo' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396D'
+ language = 'Java' body = ' mThreadId = threadId; mThreadName = threadName; mStatus = -1; //mTid = mUtime = mStime = 0; //mIsDaemon = false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003967'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396E'
+ name = 'updateThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003976'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Set with the values we get from a THST chunk.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003970'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003971'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003972'
+ name = 'tid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003973'
+ name = 'utime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003974'
+ name = 'stime' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003975'
+ name = 'isDaemon' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003977'
+ name = 'updateThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003978'
+ language = 'Java' body = ' mStatus = status; mTid = tid; mUtime = utime; mStime = stime; mIsDaemon = isDaemon; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003979'
+ name = 'setStackCall' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>trace stackcall information.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the stack call of the thread.
+@param trace stackcall information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397C'
+ name = 'trace' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397F'
+ name = 'setStackCall' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003980'
+ language = 'Java' body = ' mTrace = trace; mTraceTime = System.currentTimeMillis(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003979'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003981'
+ name = 'getThreadId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003984'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the thread's ID.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003983'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003985'
+ name = 'getThreadId' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003986'
+ language = 'Java' body = ' return mThreadId; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003981'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003987'
+ name = 'getThreadName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the thread's name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003989'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398B'
+ name = 'getThreadName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398C'
+ language = 'Java' body = ' return mThreadName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003987'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398D'
+ name = 'setThreadName' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003990'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003991'
+ name = 'setThreadName' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003992'
+ language = 'Java' body = ' mThreadName = name; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003993'
+ name = 'getTid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003996'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the system tid.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003995'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003997'
+ name = 'getTid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003998'
+ language = 'Java' body = ' return mTid; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003993'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003999'
+ name = 'getStatus' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the VM thread status.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399D'
+ name = 'getStatus' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399E'
+ language = 'Java' body = ' return mStatus; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003999'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399F'
+ name = 'getUtime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the cumulative user time.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A3'
+ name = 'getUtime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A4'
+ language = 'Java' body = ' return mUtime; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A5'
+ name = 'getStime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the cumulative system time.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A9'
+ name = 'getStime' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AA'
+ language = 'Java' body = ' return mStime; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AB'
+ name = 'isDaemon' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether this is a daemon thread.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AF'
+ name = 'isDaemon' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B0'
+ language = 'Java' body = ' return mIsDaemon; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B1'
+ name = 'getStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B4'
+ name = 'getStackTrace' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B5'
+ language = 'Java' body = ' return mTrace; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B6'
+ name = 'getStackCallTime' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getStackTrace()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the approximate time of the stacktrace data.
+@see #getStackTrace()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BB'
+ name = 'getStackCallTime' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BC'
+ language = 'Java' body = ' return mTraceTime; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206A'
+ name = 'GetPropReceiver.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BF'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BE'
+ name = 'GetPropReceiver.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039BF'
+ name = 'GetPropReceiver.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206C'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206B'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206B'
+ name = 'GetPropReceiver' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A receiver able to parse the result of the execution of
+ {@link #GETPROP_COMMAND} on a device.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C1'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C2'
+ name = 'GETPROP_COMMAND' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C7'
+ language = 'Java' body = ' "getprop"'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C8'
+ name = 'GETPROP_PATTERN' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CD'
+ language = 'Java' body = ' Pattern.compile("^\\[([^]]+)\\]\\:\\s*\\[(.*)\\]$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039CE'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D3'
+ language = 'Java' body = ' null'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> indicates if we need to read the first *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D5'
+ name = 'GetPropReceiver' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device The device to modify
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates the receiver with the device the receiver will modify.
+@param device The device to modify</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D7'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DA'
+ name = 'GetPropReceiver' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DB'
+ language = 'Java' body = ' mDevice = device; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DC'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DF'
+ name = 'lines' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E0'
+ name = 'processNewLines' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E1'
+ language = 'Java' body = ' // We receive an array of lines. We're expecting // to have the build info in the first line, and the build // date in the 2nd line. There seems to be an empty line // after all that. for (String line : lines) { if (line.length() == 0 || line.startsWith("#")) { continue; } Matcher m = GETPROP_PATTERN.matcher(line); if (m.matches()) { String label = m.group(1); String value = m.group(2); if (label.length() > 0) { mDevice.addProperty(label, value); } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E2'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E5'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E6'
+ language = 'Java' body = ' return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E7'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EA'
+ name = 'done' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EB'
+ language = 'Java' body = ' mDevice.update(Device.CHANGE_BUILD_INFO); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206E'
+ name = 'JdwpPacket.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039ED'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EE'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EF'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F0'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039ED'
+ name = 'JdwpPacket.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EE'
+ name = 'JdwpPacket.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039EF'
+ name = 'JdwpPacket.java -> ByteOrder' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F0'
+ name = 'JdwpPacket.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206E'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002070'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'
+ name = 'JdwpPacket' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002071'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ A JDWP packet, sitting at the start of a ByteBuffer somewhere.
+
+ This allows us to wrap a "pointer" to the data with the results of
+ decoding the packet.
+
+ None of the operations here are synchronized. If multiple threads will
+ be accessing the same ByteBuffers, external sync will be required.
+
+ Use the constructor to create an empty packet, or "findPacket()" to
+ wrap a JdwpPacket around existing data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F2'
+ name = 'JDWP_HEADER_LEN' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F7'
+ language = 'Java' body = ' 11'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F8'
+ name = 'HANDSHAKE_GOOD' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FD'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039FE'
+ name = 'HANDSHAKE_NOTYET' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A01'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A02'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A03'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A04'
+ name = 'HANDSHAKE_BAD' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A07'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A08'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A09'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0A'
+ name = 'DDMS_CMD_SET' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A0F'
+ language = 'Java' body = ' 0xc7'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A10'
+ name = 'DDMS_CMD' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A13'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A14'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A15'
+ language = 'Java' body = ' 0x01'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A16'
+ name = 'REPLY_PACKET' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A19'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1B'
+ language = 'Java' body = ' 0x80'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1C'
+ name = 'mHandshake' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A1F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A20'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A21'
+ language = 'Java' body = ' { 'J', 'D', 'W', 'P', '-', 'H', 'a', 'n', 'd', 's', 'h', 'a', 'k', 'e' }'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A22'
+ name = 'HANDSHAKE_LEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A25'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A26'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A27'
+ language = 'Java' body = ' mHandshake.length'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A28'
+ name = 'mBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A2D'
+ name = 'mLength' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A30'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A31'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A32'
+ name = 'mId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A35'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A36'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A37'
+ name = 'mFlags' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3C'
+ name = 'mCmdSet' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A40'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A41'
+ name = 'mCmd' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A44'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A45'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A46'
+ name = 'mErrCode' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A49'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4B'
+ name = 'mIsNew' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A4F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A50'
+ name = 'mSerialId' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A54'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A55'
+ language = 'Java' body = ' 0x40000000'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A56'
+ name = 'JdwpPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A59'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create a new, empty packet, in "buf".</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A58'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5A'
+ name = 'JdwpPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5B'
+ language = 'Java' body = ' mBuffer = buf; mIsNew = true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A56'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5C'
+ name = 'finishPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A60'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Finish a packet created with newPacket().
+
+ This always creates a command packet, with the next serial number
+ in sequence.
+
+ We have to take "payloadLength" as an argument because we can't
+ see the position in the "slice" returned by getPayload(). We could
+ fish it out of the chunk header, but it's legal for there to be
+ more than one chunk in a JDWP packet.
+
+ On exit, "position" points to the end of the data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5F'
+ name = 'payloadLength' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A61'
+ name = 'finishPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A62'
+ language = 'Java' body = ' assert mIsNew; ByteOrder oldOrder = mBuffer.order(); mBuffer.order(ChunkHandler.CHUNK_ORDER); mLength = JDWP_HEADER_LEN + payloadLength; mId = getNextSerial(); mFlags = 0; mCmdSet = DDMS_CMD_SET; mCmd = DDMS_CMD; mBuffer.putInt(0x00, mLength); mBuffer.putInt(0x04, mId); mBuffer.put(0x08, (byte) mFlags); mBuffer.put(0x09, (byte) mCmdSet); mBuffer.put(0x0a, (byte) mCmd); mBuffer.order(oldOrder); mBuffer.position(mLength); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A63'
+ name = 'getNextSerial' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A66'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the next serial number. This creates a unique serial number
+ across all connections, not just for the current connection. This
+ is a useful property when debugging, but isn't necessary.
+
+ We can't synchronize on an int, so we use a sync method.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A65'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A67'
+ name = 'getNextSerial' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A68'
+ language = 'Java' body = ' return mSerialId++; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A63'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A69'
+ name = 'getPayload' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return a slice of the byte buffer, positioned past the JDWP header
+ to the start of the chunk header. The buffer's limit will be set
+ to the size of the payload if the size is known; if this is a
+ packet under construction the limit will be set to the end of the
+ buffer.
+
+ Doesn't examine the packet at all -- works on empty buffers.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6D'
+ name = 'getPayload' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6E'
+ language = 'Java' body = ' ByteBuffer buf; int oldPosn = mBuffer.position(); mBuffer.position(JDWP_HEADER_LEN); buf = mBuffer.slice(); // goes from position to limit mBuffer.position(oldPosn); if (mLength > 0) buf.limit(mLength - JDWP_HEADER_LEN); else assert mIsNew; buf.order(ChunkHandler.CHUNK_ORDER); return buf; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A69'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6F'
+ name = 'isDdmPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A72'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if this JDWP packet has a JDWP command type.
+
+ This never returns "true" for reply packets.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A71'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A73'
+ name = 'isDdmPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A74'
+ language = 'Java' body = ' return (mFlags & REPLY_PACKET) == 0 && mCmdSet == DDMS_CMD_SET && mCmd == DDMS_CMD; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A75'
+ name = 'isReply' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A78'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if this JDWP packet is tagged as a reply.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A77'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A79'
+ name = 'isReply' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7A'
+ language = 'Java' body = ' return (mFlags & REPLY_PACKET) != 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A75'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7B'
+ name = 'isError' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if this JDWP packet is a reply with a nonzero
+ error code.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7F'
+ name = 'isError' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A80'
+ language = 'Java' body = ' return isReply() && mErrCode != 0; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A81'
+ name = 'isEmpty' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A84'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns "true" if this JDWP packet has no data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A83'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A85'
+ name = 'isEmpty' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A86'
+ language = 'Java' body = ' return (mLength == JDWP_HEADER_LEN); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A81'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A87'
+ name = 'getId' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the packet's ID. For a reply packet, this allows us to
+ match the reply with the original request.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8B'
+ name = 'getId' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8C'
+ language = 'Java' body = ' return mId; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A87'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8D'
+ name = 'getLength' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A90'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the length of a packet. This includes the header, so an
+ empty packet is 11 bytes long.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A91'
+ name = 'getLength' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A92'
+ language = 'Java' body = ' return mLength; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A93'
+ name = 'writeAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A97'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Write our packet to "chan". Consumes the packet as part of the
+ write.
+
+ The JDWP packet starts at offset 0 and ends at mBuffer.position().</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A96'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A98'
+ name = 'writeAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A99'
+ language = 'Java' body = ' int oldLimit; //Log.i("ddms", "writeAndConsume: pos=" + mBuffer.position() // + ", limit=" + mBuffer.limit()); assert mLength > 0; mBuffer.flip(); // limit<-posn, posn<-0 oldLimit = mBuffer.limit(); mBuffer.limit(mLength); while (mBuffer.position() != mBuffer.limit()) { chan.write(mBuffer); } // position should now be at end of packet assert mBuffer.position() == mLength; mBuffer.limit(oldLimit); mBuffer.compact(); // shift posn...limit, posn<-pending data //Log.i("ddms", " : pos=" + mBuffer.position() // + ", limit=" + mBuffer.limit()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A93'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9A'
+ name = 'movePacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ "Move" the packet data out of the buffer we're sitting on and into
+ buf at the current position.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9D'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9F'
+ name = 'movePacket' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA0'
+ language = 'Java' body = ' Log.v("ddms", "moving " + mLength + " bytes"); int oldPosn = mBuffer.position(); mBuffer.position(0); mBuffer.limit(mLength); buf.put(mBuffer); mBuffer.position(mLength); mBuffer.limit(oldPosn); mBuffer.compact(); // shift posn...limit, posn<-pending data '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA1'
+ name = 'consume' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Consume the JDWP packet.
+
+ On entry and exit, "position" is the #of bytes in the buffer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA5'
+ name = 'consume' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA6'
+ language = 'Java' body = ' //Log.d("ddms", "consuming " + mLength + " bytes"); //Log.d("ddms", " posn=" + mBuffer.position() // + ", limit=" + mBuffer.limit()); /* * The "flip" call sets "limit" equal to the position (usually the * end of data) and "position" equal to zero. * * compact() copies everything from "position" and "limit" to the * start of the buffer, sets "position" to the end of data, and * sets "limit" to the capacity. * * On entry, "position" is set to the amount of data in the buffer * and "limit" is set to the capacity. We want to call flip() * so that position..limit spans our data, advance "position" past * the current packet, then compact. */ mBuffer.flip(); // limit<-posn, posn<-0 mBuffer.position(mLength); mBuffer.compact(); // shift posn...limit, posn<-pending data mLength = 0; //Log.d("ddms", " after compact, posn=" + mBuffer.position() // + ", limit=" + mBuffer.limit()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA7'
+ name = 'findPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Find the JDWP packet at the start of "buf". The start is known,
+ but the length has to be parsed out.
+
+ On entry, the packet data in "buf" must start at offset 0 and end
+ at "position". "limit" should be set to the buffer capacity. This
+ method does not alter "buf"s attributes.
+
+ Returns a new JdwpPacket if a full one is found in the buffer. If
+ not, returns null. Throws an exception if the data doesn't look like
+ a valid JDWP packet.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAA'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAC'
+ name = 'findPacket' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAD'
+ language = 'Java' body = ' int count = buf.position(); int length, id, flags, cmdSet, cmd; if (count < JDWP_HEADER_LEN) return null; ByteOrder oldOrder = buf.order(); buf.order(ChunkHandler.CHUNK_ORDER); length = buf.getInt(0x00); id = buf.getInt(0x04); flags = buf.get(0x08) & 0xff; cmdSet = buf.get(0x09) & 0xff; cmd = buf.get(0x0a) & 0xff; buf.order(oldOrder); if (length < JDWP_HEADER_LEN) throw new BadPacketException(); if (count < length) return null; JdwpPacket pkt = new JdwpPacket(buf); //pkt.mBuffer = buf; pkt.mLength = length; pkt.mId = id; pkt.mFlags = flags; if ((flags & REPLY_PACKET) == 0) { pkt.mCmdSet = cmdSet; pkt.mCmd = cmd; pkt.mErrCode = -1; } else { pkt.mCmdSet = -1; pkt.mCmd = -1; pkt.mErrCode = cmdSet | (cmd << 8); } return pkt; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAE'
+ name = 'findHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Like findPacket(), but when we're expecting the JDWP handshake.
+
+ Returns one of:
+ HANDSHAKE_GOOD - found handshake, looks good
+ HANDSHAKE_BAD - found enough data, but it's wrong
+ HANDSHAKE_NOTYET - not enough data has been read yet</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB1'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB3'
+ name = 'findHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB4'
+ language = 'Java' body = ' int count = buf.position(); int i; if (count < mHandshake.length) return HANDSHAKE_NOTYET; for (i = mHandshake.length -1; i >= 0; --i) { if (buf.get(i) != mHandshake[i]) return HANDSHAKE_BAD; } return HANDSHAKE_GOOD; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB5'
+ name = 'consumeHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Remove the handshake string from the buffer.
+
+ On entry and exit, "position" is the #of bytes in the buffer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB8'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABA'
+ name = 'consumeHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABB'
+ language = 'Java' body = ' // in theory, nothing else can have arrived, so this is overkill buf.flip(); // limit<-posn, posn<-0 buf.position(mHandshake.length); buf.compact(); // shift posn...limit, posn<-pending data '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABC'
+ name = 'putHandshake' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Copy the handshake string into the output buffer.
+
+ On exit, "buf"s position will be advanced.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABF'
+ name = 'buf' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC1'
+ name = 'putHandshake' visibility = 'package' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC2'
+ language = 'Java' body = ' buf.put(mHandshake); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'
+ name = 'HandleHeap.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC5'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC7'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC9'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACC'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACE'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC5'
+ name = 'HandleHeap.java -> AllocationTrackingStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC4'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC7'
+ name = 'HandleHeap.java -> IHprofDumpHandler' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC6'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC8'
+ name = 'HandleHeap.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC9'
+ name = 'HandleHeap.java -> BufferUnderflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACA'
+ name = 'HandleHeap.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACC'
+ name = 'HandleHeap.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACE'
+ name = 'HandleHeap.java -> Collections' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002072'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002296'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002074'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002073'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002073'
+ name = 'HandleHeap' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002075'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handle heap status updates.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD0'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD1'
+ name = 'CHUNK_HPIF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD6'
+ language = 'Java' body = ' type("HPIF")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD7'
+ name = 'CHUNK_HPST' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADC'
+ language = 'Java' body = ' type("HPST")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ADD'
+ name = 'CHUNK_HPEN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE2'
+ language = 'Java' body = ' type("HPEN")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE3'
+ name = 'CHUNK_HPSG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE8'
+ language = 'Java' body = ' type("HPSG")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AE9'
+ name = 'CHUNK_HPGC' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AEC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AEE'
+ language = 'Java' body = ' type("HPGC")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AEF'
+ name = 'CHUNK_HPDU' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF4'
+ language = 'Java' body = ' type("HPDU")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF5'
+ name = 'CHUNK_HPDS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AF9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFA'
+ language = 'Java' body = ' type("HPDS")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFB'
+ name = 'CHUNK_REAE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AFF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B00'
+ language = 'Java' body = ' type("REAE")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B01'
+ name = 'CHUNK_REAQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B04'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B05'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B06'
+ language = 'Java' body = ' type("REAQ")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B07'
+ name = 'CHUNK_REAL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0C'
+ language = 'Java' body = ' type("REAL")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B0D'
+ name = 'WHEN_DISABLE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B10'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B11'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B12'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B13'
+ name = 'WHEN_GC' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B16'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B17'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B18'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B19'
+ name = 'WHAT_MERGE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1E'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B1F'
+ name = 'WHAT_OBJ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B22'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B23'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B24'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B25'
+ name = 'HPIF_WHEN_NEVER' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B28'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B29'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2A'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2B'
+ name = 'HPIF_WHEN_NOW' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B30'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B31'
+ name = 'HPIF_WHEN_NEXT_GC' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B34'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B35'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B36'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B37'
+ name = 'HPIF_WHEN_EVERY_GC' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3C'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B3D'
+ name = 'mInst' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B40'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B41'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B42'
+ language = 'Java' body = ' new HandleHeap()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002073'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B43'
+ name = 'HandleHeap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B45'
+ name = 'HandleHeap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B46'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B43'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B47'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Register for the packets we expect to get from the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4A'
+ name = 'mt' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4C'
+ name = 'register' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4D'
+ language = 'Java' body = ' mt.registerChunkHandler(CHUNK_HPIF, mInst); mt.registerChunkHandler(CHUNK_HPST, mInst); mt.registerChunkHandler(CHUNK_HPEN, mInst); mt.registerChunkHandler(CHUNK_HPSG, mInst); mt.registerChunkHandler(CHUNK_HPDS, mInst); mt.registerChunkHandler(CHUNK_REAQ, mInst); mt.registerChunkHandler(CHUNK_REAL, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B47'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4E'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client is ready.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B50'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B51'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B53'
+ name = 'clientReady' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B54'
+ language = 'Java' body = ' if (client.isHeapUpdateEnabled()) { //sendHPSG(client, WHEN_GC, WHAT_MERGE); sendHPIF(client, HPIF_WHEN_EVERY_GC); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B55'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B59'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Client went away.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B58'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5A'
+ name = 'clientDisconnected' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5B'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B55'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5C'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B64'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Chunk handler entry point.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5F'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B60'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B61'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B62'
+ name = 'isReply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B63'
+ name = 'msgId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B65'
+ name = 'handleChunk' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B66'
+ language = 'Java' body = ' Log.d("ddm-heap", "handling " + ChunkHandler.name(type)); if (type == CHUNK_HPIF) { handleHPIF(client, data); } else if (type == CHUNK_HPST) { handleHPST(client, data); } else if (type == CHUNK_HPEN) { handleHPEN(client, data); } else if (type == CHUNK_HPSG) { handleHPSG(client, data); } else if (type == CHUNK_HPDU) { handleHPDU(client, data); } else if (type == CHUNK_HPDS) { handleHPDS(client, data); } else if (type == CHUNK_REAQ) { handleREAQ(client, data); } else if (type == CHUNK_REAL) { handleREAL(client, data); } else { handleUnknownChunk(client, type, data, isReply, msgId); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B67'
+ name = 'handleHPIF' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B69'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6A'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6B'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6C'
+ name = 'handleHPIF' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6D'
+ language = 'Java' body = ' Log.d("ddm-heap", "HPIF!"); try { int numHeaps = data.getInt(); for (int i = 0; i < numHeaps; i++) { int heapId = data.getInt(); @SuppressWarnings("unused") long timeStamp = data.getLong(); @SuppressWarnings("unused") byte reason = data.get(); long maxHeapSize = (long)data.getInt() & 0x00ffffffff; long heapSize = (long)data.getInt() & 0x00ffffffff; long bytesAllocated = (long)data.getInt() & 0x00ffffffff; long objectsAllocated = (long)data.getInt() & 0x00ffffffff; client.getClientData().setHeapInfo(heapId, maxHeapSize, heapSize, bytesAllocated, objectsAllocated); client.update(Client.CHANGE_HEAP_DATA); } } catch (BufferUnderflowException ex) { Log.w("ddm-heap", "malformed HPIF chunk from client"); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B67'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6E'
+ name = 'sendHPIF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B73'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send an HPIF (HeaP InFo) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B70'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B71'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B72'
+ name = 'when' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B74'
+ name = 'sendHPIF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B75'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(1); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.put((byte)when); finishChunkPacket(packet, CHUNK_HPIF, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_HPIF) + ": when=" + when); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B76'
+ name = 'handleHPST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B79'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7A'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7B'
+ name = 'handleHPST' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7C'
+ language = 'Java' body = ' /* Clear out any data that's sitting around to * get ready for the chunks that are about to come. */ //xxx todo: only clear data that belongs to the heap mentioned in <data>. client.getClientData().getVmHeapData().clearHeapData(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B76'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7D'
+ name = 'handleHPEN' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B80'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B81'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B82'
+ name = 'handleHPEN' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B83'
+ language = 'Java' body = ' /* Let the UI know that we've received all of the * data for this heap. */ //xxx todo: only seal data that belongs to the heap mentioned in <data>. client.getClientData().getVmHeapData().sealHeapData(); client.update(Client.CHANGE_HEAP_DATA); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B84'
+ name = 'handleHPSG' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B87'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B88'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B89'
+ name = 'handleHPSG' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8A'
+ language = 'Java' body = ' byte dataCopy[] = new byte[data.limit()]; data.rewind(); data.get(dataCopy); data = ByteBuffer.wrap(dataCopy); client.getClientData().getVmHeapData().addHeapData(data); //xxx todo: add to the heap mentioned in <data> '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B84'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8B'
+ name = 'sendHPSG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B91'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends an HPSG (HeaP SeGment) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8E'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8F'
+ name = 'when' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B90'
+ name = 'what' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B92'
+ name = 'sendHPSG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B93'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(2); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.put((byte)when); buf.put((byte)what); finishChunkPacket(packet, CHUNK_HPSG, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_HPSG) + ": when=" + when + ", what=" + what); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B94'
+ name = 'sendHPGC' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B98'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends an HPGC request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B96'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B97'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B99'
+ name = 'sendHPGC' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9A'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_HPGC, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_HPGC)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B94'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9B'
+ name = 'sendHPDU' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>fileName name of output file (on device)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends an HPDU request to the client.
+
+ We will get an HPDU response when the heap dump has completed. On
+ failure we get a generic failure response.
+
+@param fileName name of output file (on device)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9E'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9F'
+ name = 'fileName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA2'
+ name = 'sendHPDU' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA3'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(4 + fileName.length() * 2); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.putInt(fileName.length()); putString(buf, fileName); finishChunkPacket(packet, CHUNK_HPDU, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_HPDU) + " '" + fileName +"'"); client.sendAndConsume(packet, mInst); client.getClientData().setPendingHprofDump(fileName); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA4'
+ name = 'sendHPDS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>fileName name of output file (on device)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends an HPDS request to the client.
+
+ We will get an HPDS response when the heap dump has completed. On
+ failure we get a generic failure response.
+
+ This is more expensive for the device than HPDU, because the entire
+ heap dump is held in RAM instead of spooled out to a temp file. On
+ the other hand, permission to write to /sdcard is not required.
+
+@param fileName name of output file (on device)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA7'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAA'
+ name = 'sendHPDS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAB'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); finishChunkPacket(packet, CHUNK_HPDS, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_HPDS)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAC'
+ name = 'handleHPDU' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAF'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB0'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB1'
+ name = 'handleHPDU' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB2'
+ language = 'Java' body = ' byte result; // get the filename and make the client not have pending HPROF dump anymore. String filename = client.getClientData().getPendingHprofDump(); client.getClientData().setPendingHprofDump(null); // get the dump result result = data.get(); // get the app-level handler for HPROF dump IHprofDumpHandler handler = ClientData.getHprofDumpHandler(); if (handler != null) { if (result == 0) { handler.onSuccess(filename, client); Log.d("ddm-heap", "Heap dump request has finished"); } else { handler.onEndFailure(client, null); Log.w("ddm-heap", "Heap dump request failed (check device log)"); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB3'
+ name = 'handleHPDS' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB6'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB7'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB8'
+ name = 'handleHPDS' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB9'
+ language = 'Java' body = ' IHprofDumpHandler handler = ClientData.getHprofDumpHandler(); if (handler != null) { byte[] stuff = new byte[data.capacity()]; data.get(stuff, 0, stuff.length); Log.d("ddm-hprof", "got hprof file, size: " + data.capacity() + " bytes"); handler.onSuccess(stuff, client); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBA'
+ name = 'sendREAE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a REAE (REcent Allocation Enable) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBD'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBE'
+ name = 'enable' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC0'
+ name = 'sendREAE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC1'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(1); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); buf.put((byte) (enable ? 1 : 0)); finishChunkPacket(packet, CHUNK_REAE, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_REAE) + ": " + enable); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC2'
+ name = 'sendREAQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a REAQ (REcent Allocation Query) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC5'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC7'
+ name = 'sendREAQ' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC8'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_REAQ, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_REAQ)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC9'
+ name = 'sendREAL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a REAL (REcent ALlocation) request to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCC'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCE'
+ name = 'sendREAL' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCF'
+ language = 'Java' body = ' ByteBuffer rawBuf = allocBuffer(0); JdwpPacket packet = new JdwpPacket(rawBuf); ByteBuffer buf = getChunkDataBuf(rawBuf); // no data finishChunkPacket(packet, CHUNK_REAL, buf.position()); Log.d("ddm-heap", "Sending " + name(CHUNK_REAL)); client.sendAndConsume(packet, mInst); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD0'
+ name = 'handleREAQ' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD3'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD4'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD5'
+ name = 'handleREAQ' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD6'
+ language = 'Java' body = ' boolean enabled; enabled = (data.get() != 0); Log.d("ddm-heap", "REAQ says: enabled=" + enabled); client.getClientData().setAllocationStatus(enabled ? AllocationTrackingStatus.ON : AllocationTrackingStatus.OFF); client.update(Client.CHANGE_HEAP_ALLOCATION_STATUS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD7'
+ name = 'descriptorToDot' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Converts a VM class descriptor string ("Landroid/os/Debug;") to
+ a dot-notation class name ("android.os.Debug").</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDA'
+ name = 'str' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDC'
+ name = 'descriptorToDot' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDD'
+ language = 'Java' body = ' // count the number of arrays. int array = 0; while (str.startsWith("[")) { str = str.substring(1); array++; } int len = str.length(); /* strip off leading 'L' and trailing ';' if appropriate */ if (len >= 2 && str.charAt(0) == 'L' && str.charAt(len - 1) == ';') { str = str.substring(1, len-1); str = str.replace('/', '.'); } else { // convert the basic types if ("C".equals(str)) { str = "char"; } else if ("B".equals(str)) { str = "byte"; } else if ("Z".equals(str)) { str = "boolean"; } else if ("S".equals(str)) { str = "short"; } else if ("I".equals(str)) { str = "int"; } else if ("J".equals(str)) { str = "long"; } else if ("F".equals(str)) { str = "float"; } else if ("D".equals(str)) { str = "double"; } } // now add the array part for (int a = 0 ; a < array; a++) { str = str + "[]"; } return str; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDE'
+ name = 'readStringTable' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads a string table out of "data".
+
+ This is just a serial collection of strings, each of which is a
+ four-byte length followed by UTF-16 data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE1'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE2'
+ name = 'strings' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE4'
+ name = 'readStringTable' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE5'
+ language = 'Java' body = ' int count = strings.length; int i; for (i = 0; i < count; i++) { int nameLen = data.getInt(); String descriptor = getString(data, nameLen); strings[i] = descriptorToDot(descriptor); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE6'
+ name = 'handleREAL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE9'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BEA'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BEB'
+ name = 'handleREAL' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BEC'
+ language = 'Java' body = ' Log.e("ddm-heap", "*** Received " + name(CHUNK_REAL)); int messageHdrLen, entryHdrLen, stackFrameLen; int numEntries, offsetToStrings; int numClassNames, numMethodNames, numFileNames; /* * Read the header. */ messageHdrLen = (data.get() & 0xff); entryHdrLen = (data.get() & 0xff); stackFrameLen = (data.get() & 0xff); numEntries = (data.getShort() & 0xffff); offsetToStrings = data.getInt(); numClassNames = (data.getShort() & 0xffff); numMethodNames = (data.getShort() & 0xffff); numFileNames = (data.getShort() & 0xffff); /* * Skip forward to the strings and read them. */ data.position(offsetToStrings); String[] classNames = new String[numClassNames]; String[] methodNames = new String[numMethodNames]; String[] fileNames = new String[numFileNames]; readStringTable(data, classNames); readStringTable(data, methodNames); //System.out.println("METHODS: " // + java.util.Arrays.deepToString(methodNames)); readStringTable(data, fileNames); /* * Skip back to a point just past the header and start reading * entries. */ data.position(messageHdrLen); ArrayList<AllocationInfo> list = new ArrayList<AllocationInfo>(numEntries); for (int i = 0; i < numEntries; i++) { int totalSize; int threadId, classNameIndex, stackDepth; totalSize = data.getInt(); threadId = (data.getShort() & 0xffff); classNameIndex = (data.getShort() & 0xffff); stackDepth = (data.get() & 0xff); /* we've consumed 9 bytes; gobble up any extra */ for (int skip = 9; skip < entryHdrLen; skip++) data.get(); StackTraceElement[] steArray = new StackTraceElement[stackDepth]; /* * Pull out the stack trace. */ for (int sti = 0; sti < stackDepth; sti++) { int methodClassNameIndex, methodNameIndex; int methodSourceFileIndex; short lineNumber; String methodClassName, methodName, methodSourceFile; methodClassNameIndex = (data.getShort() & 0xffff); methodNameIndex = (data.getShort() & 0xffff); methodSourceFileIndex = (data.getShort() & 0xffff); lineNumber = data.getShort(); methodClassName = classNames[methodClassNameIndex]; methodName = methodNames[methodNameIndex]; methodSourceFile = fileNames[methodSourceFileIndex]; steArray[sti] = new StackTraceElement(methodClassName, methodName, methodSourceFile, lineNumber); /* we've consumed 8 bytes; gobble up any extra */ for (int skip = 9; skip < stackFrameLen; skip++) data.get(); } list.add(new AllocationInfo(classNames[classNameIndex], totalSize, (short) threadId, steArray)); } // sort biggest allocations first. Collections.sort(list); client.getClientData().setAllocations(list.toArray(new AllocationInfo[numEntries])); client.update(Client.CHANGE_HEAP_ALLOCATIONS); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BED'
+ name = 'dumpRecords' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BEF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF1'
+ name = 'records' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF2'
+ name = 'dumpRecords' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF3'
+ language = 'Java' body = ' System.out.println("Found " + records.length + " records:"); for (AllocationInfo rec: records) { System.out.println("tid=" + rec.getThreadId() + " " + rec.getAllocatedClass() + " (" + rec.getSize() + " bytes)"); for (StackTraceElement ste: rec.getStackTrace()) { if (ste.isNativeMethod()) { System.out.println(" " + ste.getClassName() + "." + ste.getMethodName() + " (Native method)"); } else { System.out.println(" " + ste.getClassName() + "." + ste.getMethodName() + " (" + ste.getFileName() + ":" + ste.getLineNumber() + ")"); } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'
+ name = 'ClientData.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF6'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF7'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF8'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFA'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFB'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFD'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFF'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C01'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C02'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C03'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C05'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C08'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF6'
+ name = 'ClientData.java -> HeapSegmentElement' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF5'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF7'
+ name = 'ClientData.java -> BufferUnderflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF8'
+ name = 'ClientData.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFA'
+ name = 'ClientData.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFB'
+ name = 'ClientData.java -> Collection' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFD'
+ name = 'ClientData.java -> Collections' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002296'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFF'
+ name = 'ClientData.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C01'
+ name = 'ClientData.java -> HashSet' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E71'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C02'
+ name = 'ClientData.java -> Iterator' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C03'
+ name = 'ClientData.java -> List' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C05'
+ name = 'ClientData.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C08'
+ name = 'ClientData.java -> TreeMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0B'
+ name = 'ClientData.java -> TreeSet' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002076'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0A'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002078'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002077'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002077'
+ name = 'ClientData' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002079'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Contains the data of a {@link Client}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207A'
+ name = 'DebuggerStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207B'
+ name = 'DEFAULT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C15'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C16'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002080'
+ name = 'WAITING' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C18'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002085'
+ name = 'ATTACHED' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C19'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208A'
+ name = 'ERROR' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208F'
+ name = 'AllocationTrackingStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002090'
+ name = 'UNKNOWN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002095'
+ name = 'OFF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C20'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C21'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209A'
+ name = 'ON' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C22'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C23'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209F'
+ name = 'MethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A0'
+ name = 'UNKNOWN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C25'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C26'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020A5'
+ name = 'OFF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C27'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AA'
+ name = 'ON' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AF'
+ name = 'HeapData' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Heap Information.
+ <p/>The heap is composed of several {@link HeapSegment} objects.
+ <p/>A call to {@link #isHeapDataComplete()} will indicate if the segments (available through
+ {@link #getHeapSegments()}) represent the full heap.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD8'
+ name = 'mHeapSegments' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDD'
+ language = 'Java' body = ' new TreeSet<HeapSegment>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0A'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CDE'
+ name = 'mHeapDataComplete' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE3'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE4'
+ name = 'mProcessedHeapData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CE9'
+ name = 'mProcessedHeapMap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CED'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEE'
+ name = 'clearHeapData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Abandon the current list of heap segments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF2'
+ name = 'clearHeapData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF3'
+ language = 'Java' body = ' /* Abandon the old segments instead of just calling .clear(). * This lets the user hold onto the old set if it wants to. */ mHeapSegments = new TreeSet<HeapSegment>(); mHeapDataComplete = false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF4'
+ name = 'addHeapData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>data The raw data from an HPSG chunk.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Add raw HPSG chunk data to the list of heap segments.
+
+@param data The raw data from an HPSG chunk.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF7'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFA'
+ name = 'addHeapData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFB'
+ language = 'Java' body = ' HeapSegment hs; if (mHeapDataComplete) { clearHeapData(); } try { hs = new HeapSegment(data); } catch (BufferUnderflowException e) { System.err.println("Discarding short HPSG data (length " + data.limit() + ")"); return; } mHeapSegments.add(hs); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFC'
+ name = 'sealHeapData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when all heap data has arrived.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D00'
+ name = 'sealHeapData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D01'
+ language = 'Java' body = ' mHeapDataComplete = true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D02'
+ name = 'isHeapDataComplete' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D05'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the heap data has been sealed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D06'
+ name = 'isHeapDataComplete' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D07'
+ language = 'Java' body = ' return mHeapDataComplete; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D02'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D08'
+ name = 'getHeapSegments' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>The list of heap segments if the heap data has been sealed, or null if it hasn't.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the collected heap data, if sealed.
+
+@return The list of heap segments if the heap data has been sealed, or null if it hasn't.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0D'
+ name = 'getHeapSegments' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0E'
+ language = 'Java' body = ' if (isHeapDataComplete()) { return mHeapSegments; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D08'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0F'
+ name = 'setProcessedHeapData' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D13'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>heapData The new heap data (can be null)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D14'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the processed heap data.
+
+@param heapData The new heap data (can be null)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D11'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D12'
+ name = 'heapData' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D15'
+ name = 'setProcessedHeapData' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D16'
+ language = 'Java' body = ' mProcessedHeapData = heapData; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D0F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D17'
+ name = 'getProcessedHeapData' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the processed heap data, or null.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Get the processed heap data, if present.
+
+@return the processed heap data, or null.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D19'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1C'
+ name = 'getProcessedHeapData' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1D'
+ language = 'Java' body = ' return mProcessedHeapData; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D17'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1E'
+ name = 'setProcessedHeapMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D20'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D21'
+ name = 'heapMap' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D22'
+ name = 'setProcessedHeapMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D23'
+ language = 'Java' body = ' mProcessedHeapMap = heapMap; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D24'
+ name = 'getProcessedHeapMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D26'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D27'
+ name = 'getProcessedHeapMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D28'
+ language = 'Java' body = ' return mProcessedHeapMap; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D24'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B1'
+ name = 'IHprofDumpHandler' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handlers able to act on HPROF dumps.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2A'
+ name = 'onSuccess' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>client the client for which the HPROF file was.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D30'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a HPROF dump succeeded.
+@param remoteFilePath the device-side path of the HPROF file.
+@param client the client for which the HPROF file was.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2D'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2E'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D31'
+ name = 'onSuccess' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D36'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>client the client that was profiled.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D37'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a HPROF dump was successful.
+@param data the data containing the HPROF file, streamed from the VM
+@param client the client that was profiled.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D33'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D34'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D35'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D38'
+ name = 'onEndFailure' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message an optional (<code>null<code> ok) error message to be displayed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a hprof dump failed to end on the VM side
+@param client the client that was profiled.
+@param message an optional (<code>null<code> ok) error message to be displayed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3B'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3C'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B3'
+ name = 'IMethodProfilingHandler' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Handlers able to act on Method profiling info</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D40'
+ name = 'onSuccess' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D45'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>client the client that was profiled.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D46'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a method tracing was successful.
+@param remoteFilePath the device-side path of the trace file.
+@param client the client that was profiled.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D42'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D43'
+ name = 'remoteFilePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D44'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D47'
+ name = 'onSuccess' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>client the client that was profiled.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when a method tracing was successful.
+@param data the data containing the trace file, streamed from the VM
+@param client the client that was profiled.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4A'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4B'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4E'
+ name = 'onStartFailure' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D53'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message an optional (<code>null<code> ok) error message to be displayed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D54'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when method tracing failed to start
+@param client the client that was profiled.
+@param message an optional (<code>null<code> ok) error message to be displayed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D50'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D51'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D52'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D55'
+ name = 'onEndFailure' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message an optional (<code>null<code> ok) error message to be displayed.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Called when method tracing failed to end on the VM side
+@param client the client that was profiled.
+@param message an optional (<code>null<code> ok) error message to be displayed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D58'
+ name = 'client' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D59'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0D'
+ name = 'PRE_INITIALIZED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C10'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C11'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C12'
+ language = 'Java' body = ' "<pre-initialized>"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C13'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Temporary name of VM to be ignored. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2B'
+ name = 'HEAP_MAX_SIZE_BYTES' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C30'
+ language = 'Java' body = ' "maxSizeInBytes"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Name of the value representing the max size of the heap, in the {@link Map} returned by
+ {@link #getVmHeapInfo(int)}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C32'
+ name = 'HEAP_SIZE_BYTES' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C35'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C36'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C37'
+ language = 'Java' body = ' "sizeInBytes"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C38'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Name of the value representing the size of the heap, in the {@link Map} returned by
+ {@link #getVmHeapInfo(int)}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C39'
+ name = 'HEAP_BYTES_ALLOCATED' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3E'
+ language = 'Java' body = ' "bytesAllocated"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C3F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Name of the value representing the number of allocated bytes of the heap, in the
+ {@link Map} returned by {@link #getVmHeapInfo(int)}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C40'
+ name = 'HEAP_OBJECTS_ALLOCATED' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C43'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C44'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C45'
+ language = 'Java' body = ' "objectsAllocated"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C46'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Name of the value representing the number of objects in the heap, in the {@link Map}
+ returned by {@link #getVmHeapInfo(int)}</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C47'
+ name = 'FEATURE_PROFILING' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4C'
+ language = 'Java' body = ' "method-trace-profiling"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#hasFeature(String)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ String for feature enabling starting/stopping method profiling
+@see #hasFeature(String)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C4F'
+ name = 'FEATURE_PROFILING_STREAMING' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C52'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C53'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C54'
+ language = 'Java' body = ' "method-trace-profiling-streaming"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C55'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#hasFeature(String)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C56'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ String for feature enabling direct streaming of method profiling data
+@see #hasFeature(String)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C57'
+ name = 'FEATURE_HPROF' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5C'
+ language = 'Java' body = ' "hprof-heap-dump"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#hasFeature(String)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ String for feature allowing to dump hprof files
+@see #hasFeature(String)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C5F'
+ name = 'FEATURE_HPROF_STREAMING' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C62'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C63'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C64'
+ language = 'Java' body = ' "hprof-heap-dump-streaming"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C65'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#hasFeature(String)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C66'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ String for feature allowing direct streaming of hprof dumps
+@see #hasFeature(String)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C67'
+ name = 'sHprofDumpHandler' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B1'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6C'
+ name = 'sMethodProfilingHandler' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C6F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C70'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C71'
+ name = 'mIsDdmAware' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C74'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C75'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C76'
+ name = 'mPid' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7B'
+ name = 'mVmIdentifier' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C7F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C80'
+ name = 'mClientDescription' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C84'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C85'
+ name = 'mDebuggerInterest' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C88'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C89'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207A'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8A'
+ name = 'mFeatures' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C8F'
+ language = 'Java' body = ' new HashSet<String>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E71'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C90'
+ name = 'mThreadMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C93'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C94'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C95'
+ name = 'mHeapData' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C98'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C99'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9A'
+ language = 'Java' body = ' new HeapData()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> VM Heap data *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9C'
+ name = 'mNativeHeapData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C9F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA1'
+ language = 'Java' body = ' new HeapData()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Native Heap data *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA3'
+ name = 'mHeapInfoMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA8'
+ language = 'Java' body = ' new HashMap<Integer, HashMap<String, Long>>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CA9'
+ name = 'mNativeLibMapInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAE'
+ language = 'Java' body = ' new ArrayList<NativeLibraryMapInfo>()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CAF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> library map info. Stored here since the backtrace data
+ is computed on a need to display basis.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB0'
+ name = 'mNativeAllocationList' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB5'
+ language = 'Java' body = ' new ArrayList<NativeAllocationInfo>()'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Native Alloc info list *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CB7'
+ name = 'mNativeTotalMemory' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBC'
+ name = 'mAllocations' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CBF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF0'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC1'
+ name = 'mAllocationStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC6'
+ language = 'Java' body = ' AllocationTrackingStatus.UNKNOWN'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CC7'
+ name = 'mPendingHprofDump' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCC'
+ name = 'mProfilingStatus' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CCF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD1'
+ language = 'Java' body = ' MethodProfilingStatus.UNKNOWN'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD2'
+ name = 'mPendingMethodProfiling' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5C'
+ name = 'setHprofDumpHandler' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D60'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the handler to receive notifications when an HPROF dump succeeded or failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5F'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D61'
+ name = 'setHprofDumpHandler' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D62'
+ language = 'Java' body = ' sHprofDumpHandler = handler; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D63'
+ name = 'getHprofDumpHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D65'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D66'
+ name = 'getHprofDumpHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D67'
+ language = 'Java' body = ' return sHprofDumpHandler; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D63'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D68'
+ name = 'setMethodProfilingHandler' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the handler to receive notifications when an HPROF dump succeeded or failed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6B'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6D'
+ name = 'setMethodProfilingHandler' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6E'
+ language = 'Java' body = ' sMethodProfilingHandler = handler; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D68'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6F'
+ name = 'getMethodProfilingHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D71'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D72'
+ name = 'getMethodProfilingHandler' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D73'
+ language = 'Java' body = ' return sMethodProfilingHandler; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D6F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D74'
+ name = 'ClientData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D77'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Generic constructor.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D76'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D78'
+ name = 'ClientData' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D79'
+ language = 'Java' body = ' mPid = pid; mDebuggerInterest = DebuggerStatus.DEFAULT; mThreadMap = new TreeMap<Integer,ThreadInfo>(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D74'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7A'
+ name = 'isDdmAware' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the process is DDM-aware.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7E'
+ name = 'isDdmAware' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7F'
+ language = 'Java' body = ' return mIsDdmAware; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D80'
+ name = 'isDdmAware' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D84'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets DDM-aware status.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D82'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D83'
+ name = 'aware' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D85'
+ name = 'isDdmAware' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D86'
+ language = 'Java' body = ' mIsDdmAware = aware; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D80'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D87'
+ name = 'getPid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the process ID.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8B'
+ name = 'getPid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8C'
+ language = 'Java' body = ' return mPid; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D87'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8D'
+ name = 'getVmIdentifier' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D90'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the Client's VM identifier.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D91'
+ name = 'getVmIdentifier' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D92'
+ language = 'Java' body = ' return mVmIdentifier; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D93'
+ name = 'setVmIdentifier' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D97'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets VM identifier.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D96'
+ name = 'ident' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D98'
+ name = 'setVmIdentifier' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D99'
+ language = 'Java' body = ' mVmIdentifier = ident; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D93'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9A'
+ name = 'getClientDescription' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the client description or <code>null</code> if not the description was not yet
+ sent by the client.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the client description.
+ <p/>This is generally the name of the package defined in the
+ <code>AndroidManifest.xml</code>.
+
+@return the client description or <code>null</code> if not the description was not yet
+ sent by the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9F'
+ name = 'getClientDescription' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA0'
+ language = 'Java' body = ' return mClientDescription; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA1'
+ name = 'setClientDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets client description.
+
+ There may be a race between HELO and APNM. Rather than try
+ to enforce ordering on the device, we just don't allow an empty
+ name to replace a specified one.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA4'
+ name = 'description' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA6'
+ name = 'setClientDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA7'
+ language = 'Java' body = ' if (mClientDescription == null && description.length() > 0) { /* * The application VM is first named <pre-initialized> before being assigned * its real name. * Depending on the timing, we can get an APNM chunk setting this name before * another one setting the final actual name. So if we get a SetClientDescription * with this value we ignore it. */ if (PRE_INITIALIZED.equals(description) == false) { mClientDescription = description; } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA8'
+ name = 'getDebuggerConnectionStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the debugger connection status.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAC'
+ name = 'getDebuggerConnectionStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAD'
+ language = 'Java' body = ' return mDebuggerInterest; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAE'
+ name = 'setDebuggerConnectionStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets debugger connection status.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB1'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000207A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB3'
+ name = 'setDebuggerConnectionStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB4'
+ language = 'Java' body = ' mDebuggerInterest = status; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB5'
+ name = 'setHeapInfo' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB8'
+ name = 'heapId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB9'
+ name = 'maxSizeInBytes' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBA'
+ name = 'sizeInBytes' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBB'
+ name = 'bytesAllocated' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBC'
+ name = 'objectsAllocated' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBD'
+ name = 'setHeapInfo' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBE'
+ language = 'Java' body = ' HashMap<String, Long> heapInfo = new HashMap<String, Long>(); heapInfo.put(HEAP_MAX_SIZE_BYTES, maxSizeInBytes); heapInfo.put(HEAP_SIZE_BYTES, sizeInBytes); heapInfo.put(HEAP_BYTES_ALLOCATED, bytesAllocated); heapInfo.put(HEAP_OBJECTS_ALLOCATED, objectsAllocated); mHeapInfoMap.put(heapId, heapInfo); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBF'
+ name = 'getVmHeapData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link HeapData} object for the VM.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC3'
+ name = 'getVmHeapData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC4'
+ language = 'Java' body = ' return mHeapData; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DBF'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC5'
+ name = 'getNativeHeapData' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link HeapData} object for the native code.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020AF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC9'
+ name = 'getNativeHeapData' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCA'
+ language = 'Java' body = ' return mNativeHeapData; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCB'
+ name = 'getVmHeapIds' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>an iterator over the list of heap ids
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an iterator over the list of known VM heap ids.
+ <p/>
+ The caller must synchronize on the {@link ClientData} object while iterating.
+
+@return an iterator over the list of heap ids</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD0'
+ name = 'getVmHeapIds' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD1'
+ language = 'Java' body = ' return mHeapInfoMap.keySet().iterator(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD2'
+ name = 'getVmHeapInfo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>heapId The heap whose info should be returned
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a map containing the info values for the specified heap.
+ Returns <code>null</code> if the heap ID is unknown.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the most-recent info values for the specified VM heap.
+
+@param heapId The heap whose info should be returned
+@return a map containing the info values for the specified heap.
+ Returns <code>null</code> if the heap ID is unknown.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD5'
+ name = 'heapId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD9'
+ name = 'getVmHeapInfo' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDA'
+ language = 'Java' body = ' return mHeapInfoMap.get(heapId); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDB'
+ name = 'addThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Adds a new thread to the list.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDE'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDF'
+ name = 'threadName' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE1'
+ name = 'addThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE2'
+ language = 'Java' body = ' ThreadInfo attr = new ThreadInfo(threadId, threadName); mThreadMap.put(threadId, attr); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE3'
+ name = 'removeThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Removes a thread from the list.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE6'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE8'
+ name = 'removeThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE9'
+ language = 'Java' body = ' mThreadMap.remove(threadId); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEA'
+ name = 'getThreads' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the list of threads as {@link ThreadInfo} objects.
+ <p/>The list is empty until a thread update was requested with
+ {@link Client#requestThreadUpdate()}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEC'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEF'
+ name = 'getThreads' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF0'
+ language = 'Java' body = ' Collection<ThreadInfo> threads = mThreadMap.values(); return threads.toArray(new ThreadInfo[threads.size()]); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF1'
+ name = 'getThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link ThreadInfo} by thread id.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002067'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF4'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF6'
+ name = 'getThread' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF7'
+ language = 'Java' body = ' return mThreadMap.get(threadId); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF8'
+ name = 'clearThreads' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFB'
+ name = 'clearThreads' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFC'
+ language = 'Java' body = ' mThreadMap.clear(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFD'
+ name = 'getNativeAllocationList' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E00'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Client#requestNativeHeapInformation()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E01'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the list of {@link NativeAllocationInfo}.
+@see Client#requestNativeHeapInformation()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E02'
+ name = 'getNativeAllocationList' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E03'
+ language = 'Java' body = ' return Collections.unmodifiableList(mNativeAllocationList); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E04'
+ name = 'addNativeAllocation' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E08'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>allocInfo The {@link NativeAllocationInfo} to add.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E09'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ adds a new {@link NativeAllocationInfo} to the {@link Client}
+@param allocInfo The {@link NativeAllocationInfo} to add.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E06'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E07'
+ name = 'allocInfo' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F86'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0A'
+ name = 'addNativeAllocation' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0B'
+ language = 'Java' body = ' mNativeAllocationList.add(allocInfo); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E04'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0C'
+ name = 'clearNativeAllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Clear the current malloc info.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E10'
+ name = 'clearNativeAllocationInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E11'
+ language = 'Java' body = ' mNativeAllocationList.clear(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E12'
+ name = 'getTotalNativeMemory' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E15'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Client#requestNativeHeapInformation()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E16'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the total native memory.
+@see Client#requestNativeHeapInformation()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E14'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E17'
+ name = 'getTotalNativeMemory' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E18'
+ language = 'Java' body = ' return mNativeTotalMemory; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E12'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E19'
+ name = 'setTotalNativeMemory' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1C'
+ name = 'totalMemory' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1D'
+ name = 'setTotalNativeMemory' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1E'
+ language = 'Java' body = ' mNativeTotalMemory = totalMemory; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E19'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1F'
+ name = 'addNativeLibraryMapInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E21'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E22'
+ name = 'startAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E23'
+ name = 'endAddr' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E24'
+ name = 'library' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E25'
+ name = 'addNativeLibraryMapInfo' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E26'
+ language = 'Java' body = ' mNativeLibMapInfo.add(new NativeLibraryMapInfo(startAddr, endAddr, library)); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E27'
+ name = 'getNativeLibraryMapInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an {@link Iterator} on {@link NativeLibraryMapInfo} objects.
+ <p/>
+ The caller must synchronize on the {@link ClientData} object while iterating.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E29'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085D'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2B'
+ name = 'getNativeLibraryMapInfo' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2C'
+ language = 'Java' body = ' return mNativeLibMapInfo.iterator(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E27'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2D'
+ name = 'setAllocationStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E30'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E31'
+ name = 'setAllocationStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E32'
+ language = 'Java' body = ' mAllocationStatus = status; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E33'
+ name = 'getAllocationStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E36'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Client#requestAllocationStatus()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E37'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the allocation tracking status.
+@see Client#requestAllocationStatus()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E35'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000208F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E38'
+ name = 'getAllocationStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E39'
+ language = 'Java' body = ' return mAllocationStatus; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E33'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3A'
+ name = 'setAllocations' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3D'
+ name = 'allocs' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3E'
+ name = 'setAllocations' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3F'
+ language = 'Java' body = ' mAllocations = allocs; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E40'
+ name = 'getAllocations' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E43'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Client#requestAllocationDetails()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E44'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the list of tracked allocations.
+@see Client#requestAllocationDetails()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E42'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E45'
+ name = 'getAllocations' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E46'
+ language = 'Java' body = ' return mAllocations; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E40'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E47'
+ name = 'addFeature' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4A'
+ name = 'feature' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4B'
+ name = 'addFeature' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4C'
+ language = 'Java' body = ' mFeatures.add(feature); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E47'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4D'
+ name = 'hasFeature' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E51'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>feature The feature to test.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E52'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the feature is supported
+
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E53'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>ClientData#FEATURE_HPROF
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E54'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns true if the {@link Client} supports the given <var>feature</var>
+@param feature The feature to test.
+@return true if the feature is supported
+
+@see ClientData#FEATURE_PROFILING
+@see ClientData#FEATURE_HPROF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E50'
+ name = 'feature' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E55'
+ name = 'hasFeature' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E56'
+ language = 'Java' body = ' return mFeatures.contains(feature); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E57'
+ name = 'setPendingHprofDump' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pendingHprofDump the file to the hprof file
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the device-side path to the hprof file being written
+@param pendingHprofDump the file to the hprof file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E59'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5A'
+ name = 'pendingHprofDump' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5D'
+ name = 'setPendingHprofDump' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5E'
+ language = 'Java' body = ' mPendingHprofDump = pendingHprofDump; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E57'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5F'
+ name = 'getPendingHprofDump' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E62'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the path to the device-side hprof file being written.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E61'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E63'
+ name = 'getPendingHprofDump' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E64'
+ language = 'Java' body = ' return mPendingHprofDump; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E5F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E65'
+ name = 'hasPendingHprofDump' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E67'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E68'
+ name = 'hasPendingHprofDump' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E69'
+ language = 'Java' body = ' return mPendingHprofDump != null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E65'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6A'
+ name = 'setMethodProfilingStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6D'
+ name = 'status' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6E'
+ name = 'setMethodProfilingStatus' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6F'
+ language = 'Java' body = ' mProfilingStatus = status; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E70'
+ name = 'getMethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'guarded' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E73'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Client#requestMethodProfilingStatus()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E74'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the method profiling status.
+@see Client#requestMethodProfilingStatus()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E72'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000209F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E75'
+ name = 'getMethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E76'
+ language = 'Java' body = ' return mProfilingStatus; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E70'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E77'
+ name = 'setPendingMethodProfiling' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pendingMethodProfiling the file being written
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the device-side path to the method profile file being written
+@param pendingMethodProfiling the file being written</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E79'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7A'
+ name = 'pendingMethodProfiling' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7D'
+ name = 'setPendingMethodProfiling' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7E'
+ language = 'Java' body = ' mPendingMethodProfiling = pendingMethodProfiling; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E77'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7F'
+ name = 'getPendingMethodProfiling' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E82'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the path to the device-side method profiling file being written.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E81'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E83'
+ name = 'getPendingMethodProfiling' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E84'
+ language = 'Java' body = ' return mPendingMethodProfiling; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E7F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'
+ name = 'Client.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E86'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E87'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E89'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E91'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E86'
+ name = 'Client.java -> MethodProfilingStatus' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002708'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E87'
+ name = 'Client.java -> IDebugPortProvider' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E89'
+ name = 'Client.java -> IClientChangeListener' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E88'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8A'
+ name = 'Client.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8B'
+ name = 'Client.java -> BufferOverflowException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8C'
+ name = 'Client.java -> ByteBuffer' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8D'
+ name = 'Client.java -> SelectionKey' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8E'
+ name = 'Client.java -> Selector' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E8F'
+ name = 'Client.java -> SocketChannel' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E91'
+ name = 'Client.java -> HashMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B5'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B7'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B6'
+ name = 'Client' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ This represents a single client, usually a DAlvik VM process.
+ <p/>This class gives access to basic client information, as well as methods to perform actions
+ on the client.
+ <p/>More detailed information, usually updated in real time, can be access through the
+ {@link ClientData} class. Each <code>Client</code> object has its own <code>ClientData</code>
+ accessed through {@link #getClientData()}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E93'
+ name = 'SERVER_PROTOCOL_VERSION' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E96'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E97'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E98'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E99'
+ name = 'CHANGE_NAME' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9E'
+ language = 'Java' body = ' 0x0001'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E9F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: application name change *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA0'
+ name = 'CHANGE_DEBUGGER_STATUS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA5'
+ language = 'Java' body = ' 0x0002'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: debugger status change *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EA7'
+ name = 'CHANGE_PORT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAC'
+ language = 'Java' body = ' 0x0004'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: debugger port change *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EAE'
+ name = 'CHANGE_THREAD_MODE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB3'
+ language = 'Java' body = ' 0x0008'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: thread update flag change *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB5'
+ name = 'CHANGE_THREAD_DATA' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EB9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBA'
+ language = 'Java' body = ' 0x0010'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: thread data updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBC'
+ name = 'CHANGE_HEAP_MODE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EBF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC1'
+ language = 'Java' body = ' 0x0020'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: heap update flag change *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC3'
+ name = 'CHANGE_HEAP_DATA' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC8'
+ language = 'Java' body = ' 0x0040'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EC9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: head data updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECA'
+ name = 'CHANGE_NATIVE_HEAP_DATA' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ECF'
+ language = 'Java' body = ' 0x0080'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: native heap data updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED1'
+ name = 'CHANGE_THREAD_STACKTRACE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED6'
+ language = 'Java' body = ' 0x0100'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: thread stack trace updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ED8'
+ name = 'CHANGE_HEAP_ALLOCATIONS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDD'
+ language = 'Java' body = ' 0x0200'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: allocation information updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EDF'
+ name = 'CHANGE_HEAP_ALLOCATION_STATUS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE4'
+ language = 'Java' body = ' 0x0400'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: allocation information updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE6'
+ name = 'CHANGE_METHOD_PROFILING_STATUS' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EE9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EEA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EEB'
+ language = 'Java' body = ' 0x0800'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EEC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: allocation information updated *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EED'
+ name = 'CHANGE_INFO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF2'
+ language = 'Java' body = ' CHANGE_NAME | CHANGE_DEBUGGER_STATUS | CHANGE_PORT'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Client change bit mask: combination of {@link Client#CHANGE_NAME},
+ {@link Client#CHANGE_DEBUGGER_STATUS}, and {@link Client#CHANGE_PORT}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF4'
+ name = 'mChan' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EF9'
+ name = 'mDebugger' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003EFE'
+ name = 'mDebuggerListenPort' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F01'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F02'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F03'
+ name = 'mOutstandingReqs' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F06'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F07'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F08'
+ name = 'mClientData' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002077'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F0D'
+ name = 'mThreadUpdateEnabled' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F10'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F11'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F12'
+ name = 'mHeapUpdateEnabled' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F15'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F16'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F17'
+ name = 'INITIAL_BUF_SIZE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1C'
+ language = 'Java' body = ' 2*1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F1D'
+ name = 'MAX_BUF_SIZE' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F20'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F21'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F22'
+ language = 'Java' body = ' 200*1024*1024'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F23'
+ name = 'mReadBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F26'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F27'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F28'
+ name = 'WRITE_BUF_SIZE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2D'
+ language = 'Java' body = ' 256'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F2E'
+ name = 'mWriteBuffer' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F31'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F32'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F33'
+ name = 'mDevice' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F37'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F38'
+ name = 'mConnState' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F3D'
+ name = 'ST_INIT' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F40'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F41'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F42'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F43'
+ name = 'ST_NOT_JDWP' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F46'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F47'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F48'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F49'
+ name = 'ST_AWAIT_SHAKE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4E'
+ language = 'Java' body = ' 10'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F4F'
+ name = 'ST_NEED_DDM_PKT' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F52'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F53'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F54'
+ language = 'Java' body = ' 11'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F55'
+ name = 'ST_NOT_DDM' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F58'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5A'
+ language = 'Java' body = ' 12'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5B'
+ name = 'ST_READY' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F5F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F60'
+ language = 'Java' body = ' 13'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F61'
+ name = 'ST_ERROR' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F64'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F65'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F66'
+ language = 'Java' body = ' 20'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F67'
+ name = 'ST_DISCONNECTED' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6C'
+ language = 'Java' body = ' 21'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6D'
+ name = 'Client' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F72'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>pid the client pid.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F73'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Create an object for a new client connection.
+
+@param device the device this client belongs to
+@param chan the connected {@link SocketChannel}.
+@param pid the client pid.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6F'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F70'
+ name = 'chan' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F71'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F74'
+ name = 'Client' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F75'
+ language = 'Java' body = ' mDevice = device; mChan = chan; mReadBuffer = ByteBuffer.allocate(INITIAL_BUF_SIZE); mWriteBuffer = ByteBuffer.allocate(WRITE_BUF_SIZE); mOutstandingReqs = new HashMap<Integer,ChunkHandler>(); mConnState = ST_INIT; mClientData = new ClientData(pid); mThreadUpdateEnabled = DdmPreferences.getInitialThreadUpdate(); mHeapUpdateEnabled = DdmPreferences.getInitialHeapUpdate(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F76'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F79'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a string representation of the {@link Client} object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7A'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7B'
+ language = 'Java' body = ' return "[Client pid: " + mClientData.getPid() + "]"; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F76'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7C'
+ name = 'getDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link IDevice} on which this Client is running.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F80'
+ name = 'getDevice' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F81'
+ language = 'Java' body = ' return mDevice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F82'
+ name = 'getDeviceImpl' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F85'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Returns the {@link Device} on which this Client is running.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F84'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F86'
+ name = 'getDeviceImpl' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F87'
+ language = 'Java' body = ' return mDevice; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F82'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F88'
+ name = 'getDebuggerListenPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the debugger port for this client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8C'
+ name = 'getDebuggerListenPort' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8D'
+ language = 'Java' body = ' return mDebuggerListenPort; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F88'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8E'
+ name = 'isDdmAware' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F91'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns <code>true</code> if the client VM is DDM-aware.
+
+ Calling here is only allowed after the connection has been
+ established.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F90'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F92'
+ name = 'isDdmAware' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F93'
+ language = 'Java' body = ' switch (mConnState) { case ST_INIT: case ST_NOT_JDWP: case ST_AWAIT_SHAKE: case ST_NEED_DDM_PKT: case ST_NOT_DDM: case ST_ERROR: case ST_DISCONNECTED: return false; case ST_READY: return true; default: assert false; return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F94'
+ name = 'isDebuggerAttached' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F97'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns <code>true</code> if a debugger is currently attached to the client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F96'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F98'
+ name = 'isDebuggerAttached' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F99'
+ language = 'Java' body = ' return mDebugger.isDebuggerAttached(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F94'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9A'
+ name = 'getDebugger' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return the Debugger object associated with this client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000205C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9E'
+ name = 'getDebugger' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9F'
+ language = 'Java' body = ' return mDebugger; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA0'
+ name = 'getClientData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the {@link ClientData} object containing this client information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002077'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA4'
+ name = 'getClientData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA5'
+ language = 'Java' body = ' return mClientData; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA6'
+ name = 'executeGarbageCollector' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Forces the client to execute its garbage collector.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAA'
+ name = 'executeGarbageCollector' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAB'
+ language = 'Java' body = ' try { HandleHeap.sendHPGC(this); } catch (IOException ioe) { Log.w("ddms", "Send of HPGC message failed"); // ignore } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAC'
+ name = 'dumpHprof' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Makes the VM dump an HPROF file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB0'
+ name = 'dumpHprof' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB1'
+ language = 'Java' body = ' boolean canStream = mClientData.hasFeature(ClientData.FEATURE_HPROF_STREAMING); try { if (canStream) { HandleHeap.sendHPDS(this); } else { String file = "/sdcard/" + mClientData.getClientDescription().replaceAll( "\\:.*", "") + ".hprof"; HandleHeap.sendHPDU(this, file); } } catch (IOException e) { Log.w("ddms", "Send of HPDU message failed"); // ignore } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB2'
+ name = 'toggleMethodProfiling' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB5'
+ name = 'toggleMethodProfiling' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB6'
+ language = 'Java' body = ' boolean canStream = mClientData.hasFeature(ClientData.FEATURE_PROFILING_STREAMING); try { if (mClientData.getMethodProfilingStatus() == MethodProfilingStatus.ON) { if (canStream) { HandleProfiling.sendMPSE(this); } else { HandleProfiling.sendMPRE(this); } } else { if (canStream) { HandleProfiling.sendMPSS(this, 8*1024*1024, 0 /*flags*/); } else { String file = "/sdcard/" + mClientData.getClientDescription().replaceAll("\\:.*", "") + ".trace"; HandleProfiling.sendMPRS(this, file, 8*1024*1024, 0 /*flags*/); } } } catch (IOException e) { Log.w("ddms", "Toggle method profiling failed"); // ignore } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB7'
+ name = 'requestMethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a request to the VM to send the enable status of the method profiling.
+ This is asynchronous.
+ <p/>The allocation status can be accessed by {@link ClientData#getAllocationStatus()}.
+ The notification that the new status is available will be received through
+ {@link IClientChangeListener#clientChanged(Client, int)} with a <code>changeMask</code>
+ containing the mask {@link #CHANGE_HEAP_ALLOCATION_STATUS}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBB'
+ name = 'requestMethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBC'
+ language = 'Java' body = ' try { HandleHeap.sendREAQ(this); } catch (IOException e) { Log.e("ddmlib", e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBD'
+ name = 'setThreadUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>enabled the enable flag.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Enables or disables the thread update.
+ <p/>If <code>true</code> the VM will be able to send thread information. Thread information
+ must be requested with {@link #requestThreadUpdate()}.
+@param enabled the enable flag.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC0'
+ name = 'enabled' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC3'
+ name = 'setThreadUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC4'
+ language = 'Java' body = ' mThreadUpdateEnabled = enabled; if (enabled == false) { mClientData.clearThreads(); } try { HandleThread.sendTHEN(this, enabled); } catch (IOException ioe) { // ignore it here; client will clean up shortly ioe.printStackTrace(); } update(CHANGE_THREAD_MODE); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBD'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC5'
+ name = 'isThreadUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the thread update is enabled.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC9'
+ name = 'isThreadUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCA'
+ language = 'Java' body = ' return mThreadUpdateEnabled; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCB'
+ name = 'requestThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a thread update request. This is asynchronous.
+ <p/>The thread info can be accessed by {@link ClientData#getThreads()}. The notification
+ that the new data is available will be received through
+ {@link IClientChangeListener#clientChanged(Client, int)} with a <code>changeMask</code>
+ containing the mask {@link #CHANGE_THREAD_DATA}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCF'
+ name = 'requestThreadUpdate' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD0'
+ language = 'Java' body = ' HandleThread.requestThreadUpdate(this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD1'
+ name = 'requestThreadStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a thread stack trace update request. This is asynchronous.
+ <p/>The thread info can be accessed by {@link ClientData#getThreads()} and
+ {@link ThreadInfo#getStackTrace()}.
+ <p/>The notification that the new data is available
+ will be received through {@link IClientChangeListener#clientChanged(Client, int)}
+ with a <code>changeMask</code> containing the mask {@link #CHANGE_THREAD_STACKTRACE}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD4'
+ name = 'threadId' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD6'
+ name = 'requestThreadStackTrace' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD7'
+ language = 'Java' body = ' HandleThread.requestThreadStackCallRefresh(this, threadId); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD8'
+ name = 'setHeapUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>enabled the enable flag
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Enables or disables the heap update.
+ <p/>If <code>true</code>, any GC will cause the client to send its heap information.
+ <p/>The heap information can be accessed by {@link ClientData#getVmHeapData()}.
+ <p/>The notification that the new data is available
+ will be received through {@link IClientChangeListener#clientChanged(Client, int)}
+ with a <code>changeMask</code> containing the value {@link #CHANGE_HEAP_DATA}.
+@param enabled the enable flag</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDB'
+ name = 'enabled' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDE'
+ name = 'setHeapUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FDF'
+ language = 'Java' body = ' mHeapUpdateEnabled = enabled; try { HandleHeap.sendHPIF(this, enabled ? HandleHeap.HPIF_WHEN_EVERY_GC : HandleHeap.HPIF_WHEN_NEVER); HandleHeap.sendHPSG(this, enabled ? HandleHeap.WHEN_GC : HandleHeap.WHEN_DISABLE, HandleHeap.WHAT_MERGE); } catch (IOException ioe) { // ignore it here; client will clean up shortly } update(CHANGE_HEAP_MODE); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE0'
+ name = 'isHeapUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#setHeapUpdateEnabled(boolean)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether the heap update is enabled.
+@see #setHeapUpdateEnabled(boolean)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE5'
+ name = 'isHeapUpdateEnabled' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE6'
+ language = 'Java' body = ' return mHeapUpdateEnabled; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE7'
+ name = 'requestNativeHeapInformation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FEA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a native heap update request. this is asynchronous.
+ <p/>The native heap info can be accessed by {@link ClientData#getNativeAllocationList()}.
+ The notification that the new data is available will be received through
+ {@link IClientChangeListener#clientChanged(Client, int)} with a <code>changeMask</code>
+ containing the mask {@link #CHANGE_NATIVE_HEAP_DATA}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FEB'
+ name = 'requestNativeHeapInformation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FEC'
+ language = 'Java' body = ' try { HandleNativeHeap.sendNHGT(this); return true; } catch (IOException e) { Log.e("ddmlib", e); } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FED'
+ name = 'enableAllocationTracker' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>enable
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#requestAllocationDetails()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Enables or disables the Allocation tracker for this client.
+ <p/>If enabled, the VM will start tracking allocation informations. A call to
+ {@link #requestAllocationDetails()} will make the VM sends the information about all the
+ allocations that happened between the enabling and the request.
+@param enable
+@see #requestAllocationDetails()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FEF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF0'
+ name = 'enable' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF4'
+ name = 'enableAllocationTracker' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF5'
+ language = 'Java' body = ' try { HandleHeap.sendREAE(this, enable); } catch (IOException e) { Log.e("ddmlib", e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF6'
+ name = 'requestAllocationStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a request to the VM to send the enable status of the allocation tracking.
+ This is asynchronous.
+ <p/>The allocation status can be accessed by {@link ClientData#getAllocationStatus()}.
+ The notification that the new status is available will be received through
+ {@link IClientChangeListener#clientChanged(Client, int)} with a <code>changeMask</code>
+ containing the mask {@link #CHANGE_HEAP_ALLOCATION_STATUS}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFA'
+ name = 'requestAllocationStatus' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFB'
+ language = 'Java' body = ' try { HandleHeap.sendREAQ(this); } catch (IOException e) { Log.e("ddmlib", e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFC'
+ name = 'requestAllocationDetails' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a request to the VM to send the information about all the allocations that have
+ happened since the call to {@link #enableAllocationTracker(boolean)} with <var>enable</var>
+ set to <code>null</code>. This is asynchronous.
+ <p/>The allocation information can be accessed by {@link ClientData#getAllocations()}.
+ The notification that the new data is available will be received through
+ {@link IClientChangeListener#clientChanged(Client, int)} with a <code>changeMask</code>
+ containing the mask {@link #CHANGE_HEAP_ALLOCATIONS}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004000'
+ name = 'requestAllocationDetails' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004001'
+ language = 'Java' body = ' try { HandleHeap.sendREAL(this); } catch (IOException e) { Log.e("ddmlib", e); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004002'
+ name = 'kill' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004005'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sends a kill message to the VM.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004004'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004006'
+ name = 'kill' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004007'
+ language = 'Java' body = ' try { HandleExit.sendEXIT(this, 1); } catch (IOException ioe) { Log.w("ddms", "Send of EXIT message failed"); // ignore } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004002'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004008'
+ name = 'register' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Registers the client with a Selector.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400B'
+ name = 'sel' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400D'
+ name = 'register' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400E'
+ language = 'Java' body = ' if (mChan != null) { mChan.register(sel, SelectionKey.OP_READ, this); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004008'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400F'
+ name = 'setAsSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004012'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>DdmPreferences#setSelectedDebugPort(int)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004013'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sets the client to accept debugger connection on the "selected debugger port".
+
+@see AndroidDebugBridge#setSelectedClient(Client)
+@see DdmPreferences#setSelectedDebugPort(int)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004011'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004014'
+ name = 'setAsSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004015'
+ language = 'Java' body = ' MonitorThread monitorThread = MonitorThread.getInstance(); if (monitorThread != null) { monitorThread.setSelectedClient(this); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000400F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004016'
+ name = 'isSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004019'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>DdmPreferences#setSelectedDebugPort(int)
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether this client is the current selected client, accepting debugger connection
+ on the "selected debugger port".
+
+@see #setAsSelectedClient()
+@see AndroidDebugBridge#setSelectedClient(Client)
+@see DdmPreferences#setSelectedDebugPort(int)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004018'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401B'
+ name = 'isSelectedClient' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401C'
+ language = 'Java' body = ' MonitorThread monitorThread = MonitorThread.getInstance(); if (monitorThread != null) { return monitorThread.getSelectedClient() == this; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004016'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401D'
+ name = 'listenForDebugger' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004021'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Tell the client to open a server socket channel and listen for
+ connections on the specified port.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004020'
+ name = 'listenPort' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004022'
+ name = 'listenForDebugger' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004023'
+ language = 'Java' body = ' mDebuggerListenPort = listenPort; mDebugger = new Debugger(this, listenPort); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004024'
+ name = 'sendHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004027'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Initiate the JDWP handshake.
+
+ On failure, closes the socket and returns false.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004026'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004028'
+ name = 'sendHandshake' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004029'
+ language = 'Java' body = ' assert mWriteBuffer.position() == 0; try { // assume write buffer can hold 14 bytes JdwpPacket.putHandshake(mWriteBuffer); int expectedLen = mWriteBuffer.position(); mWriteBuffer.flip(); if (mChan.write(mWriteBuffer) != expectedLen) throw new IOException("partial handshake write"); } catch (IOException ioe) { Log.e("ddms-client", "IO error during handshake: " + ioe.getMessage()); mConnState = ST_ERROR; close(true /* notify */); return false; } finally { mWriteBuffer.clear(); } mConnState = ST_AWAIT_SHAKE; return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004024'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402A'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a non-DDM packet to the client.
+
+ Equivalent to sendAndConsume(packet, null).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402D'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402F'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004030'
+ language = 'Java' body = ' sendAndConsume(packet, null); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004031'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004036'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Send a DDM packet to the client.
+
+ Ideally, we can do this with a single channel write. If that doesn't
+ happen, we have to prevent anybody else from writing to the channel
+ until this packet completes, so we synchronize on the channel.
+
+ Another goal is to avoid unnecessary buffer copies, so we write
+ directly out of the JdwpPacket's ByteBuffer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004033'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004034'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004035'
+ name = 'replyHandler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004037'
+ name = 'sendAndConsume' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004038'
+ language = 'Java' body = ' if (mChan == null) { // can happen for e.g. THST packets Log.v("ddms", "Not sending packet -- client is closed"); return; } if (replyHandler != null) { /* * Add the ID to the list of outstanding requests. We have to do * this before sending the packet, in case the response comes back * before our thread returns from the packet-send function. */ addRequestId(packet.getId(), replyHandler); } synchronized (mChan) { try { packet.writeAndConsume(mChan); } catch (IOException ioe) { removeRequestId(packet.getId()); throw ioe; } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004031'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004039'
+ name = 'forwardPacketToDebugger' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Forward the packet to the debugger (if still connected to one).
+
+ Consumes the packet.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403C'
+ name = 'packet' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403E'
+ name = 'forwardPacketToDebugger' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403F'
+ language = 'Java' body = ' Debugger dbg = mDebugger; if (dbg == null) { Log.d("ddms", "Discarding packet"); packet.consume(); } else { dbg.sendAndConsume(packet); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004039'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004040'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004043'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Read data from our channel.
+
+ This is called when data is known to be available, and we don't yet
+ have a full packet in the buffer. If the buffer is at capacity,
+ expand it.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004042'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004044'
+ name = 'read' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004045'
+ language = 'Java' body = ' int count; if (mReadBuffer.position() == mReadBuffer.capacity()) { if (mReadBuffer.capacity() * 2 > MAX_BUF_SIZE) { Log.e("ddms", "Exceeded MAX_BUF_SIZE!"); throw new BufferOverflowException(); } Log.d("ddms", "Expanding read buffer to " + mReadBuffer.capacity() * 2); ByteBuffer newBuffer = ByteBuffer.allocate(mReadBuffer.capacity() * 2); // copy entire buffer to new buffer mReadBuffer.position(0); newBuffer.put(mReadBuffer); // leaves "position" at end of copied mReadBuffer = newBuffer; } count = mChan.read(mReadBuffer); if (count < 0) throw new IOException("read failed"); if (Log.Config.LOGV) Log.v("ddms", "Read " + count + " bytes from " + this); //Log.hexDump("ddms", Log.DEBUG, mReadBuffer.array(), // mReadBuffer.arrayOffset(), mReadBuffer.position()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004040'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004046'
+ name = 'getJdwpPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004049'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Return information for the first full JDWP packet in the buffer.
+
+ If we don't yet have a full packet, return null.
+
+ If we haven't yet received the JDWP handshake, we watch for it here
+ and consume it without admitting to have done so. Upon receipt
+ we send out the "HELO" message, which is why this can throw an
+ IOException.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004048'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404A'
+ name = 'getJdwpPacket' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404B'
+ language = 'Java' body = ' /* * On entry, the data starts at offset 0 and ends at "position". * "limit" is set to the buffer capacity. */ if (mConnState == ST_AWAIT_SHAKE) { /* * The first thing we get from the client is a response to our * handshake. It doesn't look like a packet, so we have to * handle it specially. */ int result; result = JdwpPacket.findHandshake(mReadBuffer); //Log.v("ddms", "findHand: " + result); switch (result) { case JdwpPacket.HANDSHAKE_GOOD: Log.d("ddms", "Good handshake from client, sending HELO to " + mClientData.getPid()); JdwpPacket.consumeHandshake(mReadBuffer); mConnState = ST_NEED_DDM_PKT; HandleHello.sendHelloCommands(this, SERVER_PROTOCOL_VERSION); // see if we have another packet in the buffer return getJdwpPacket(); case JdwpPacket.HANDSHAKE_BAD: Log.d("ddms", "Bad handshake from client"); if (MonitorThread.getInstance().getRetryOnBadHandshake()) { // we should drop the client, but also attempt to reopen it. // This is done by the DeviceMonitor. mDevice.getMonitor().addClientToDropAndReopen(this, IDebugPortProvider.NO_STATIC_PORT); } else { // mark it as bad, close the socket, and don't retry mConnState = ST_NOT_JDWP; close(true /* notify */); } break; case JdwpPacket.HANDSHAKE_NOTYET: Log.d("ddms", "No handshake from client yet."); break; default: Log.e("ddms", "Unknown packet while waiting for client handshake"); } return null; } else if (mConnState == ST_NEED_DDM_PKT || mConnState == ST_NOT_DDM || mConnState == ST_READY) { /* * Normal packet traffic. */ if (mReadBuffer.position() != 0) { if (Log.Config.LOGV) Log.v("ddms", "Checking " + mReadBuffer.position() + " bytes"); } return JdwpPacket.findPacket(mReadBuffer); } else { /* * Not expecting data when in this state. */ Log.e("ddms", "Receiving data in state = " + mConnState); } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004046'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404C'
+ name = 'addRequestId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404F'
+ name = 'id' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004050'
+ name = 'handler' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004051'
+ name = 'addRequestId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004052'
+ language = 'Java' body = ' synchronized (mOutstandingReqs) { if (Log.Config.LOGV) Log.v("ddms", "Adding req 0x" + Integer.toHexString(id) +" to set"); mOutstandingReqs.put(id, handler); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004053'
+ name = 'removeRequestId' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004055'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004056'
+ name = 'id' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004057'
+ name = 'removeRequestId' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004058'
+ language = 'Java' body = ' synchronized (mOutstandingReqs) { if (Log.Config.LOGV) Log.v("ddms", "Removing req 0x" + Integer.toHexString(id) + " from set"); mOutstandingReqs.remove(id); } //Log.w("ddms", "Request " + Integer.toHexString(id) // + " could not be removed from " + this); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004053'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004059'
+ name = 'isResponseToUs' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Determine whether this is a response to a request we sent earlier.
+ If so, return the ChunkHandler responsible.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405C'
+ name = 'id' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405E'
+ name = 'isResponseToUs' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405F'
+ language = 'Java' body = ' synchronized (mOutstandingReqs) { ChunkHandler handler = mOutstandingReqs.get(id); if (handler != null) { if (Log.Config.LOGV) Log.v("ddms", "Found 0x" + Integer.toHexString(id) + " in request set - " + handler); return handler; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004059'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004060'
+ name = 'packetFailed' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004064'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ An earlier request resulted in a failure. This is the expected
+ response to a HELO message when talking to a non-DDM client.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004062'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004063'
+ name = 'reply' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004065'
+ name = 'packetFailed' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004066'
+ language = 'Java' body = ' if (mConnState == ST_NEED_DDM_PKT) { Log.d("ddms", "Marking " + this + " as non-DDM client"); mConnState = ST_NOT_DDM; } else if (mConnState != ST_NOT_DDM) { Log.w("ddms", "WEIRD: got JDWP failure packet on DDM req"); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004060'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004067'
+ name = 'ddmSeen' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'guarded' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ The MonitorThread calls this when it sees a DDM request or reply.
+ If we haven't seen a DDM packet before, we advance the state to
+ ST_READY and return "false". Otherwise, just return true.
+
+ The idea is to let the MonitorThread know when we first see a DDM
+ packet, so we can send a broadcast to the handlers when a client
+ connection is made. This method is synchronized so that we only
+ send the broadcast once.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004069'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406B'
+ name = 'ddmSeen' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406C'
+ language = 'Java' body = ' if (mConnState == ST_NEED_DDM_PKT) { mConnState = ST_READY; return false; } else if (mConnState != ST_READY) { Log.w("ddms", "WEIRD: in ddmSeen with state=" + mConnState); } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004067'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406D'
+ name = 'close' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004071'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>notify Whether or not to notify the listeners of a change.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004072'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Close the client socket channel. If there is a debugger associated
+ with us, close that too.
+
+ Closing a channel automatically unregisters it from the selector.
+ However, we have to iterate through the selector loop before it
+ actually lets them go and allows the file descriptors to close.
+ The caller is expected to manage that.
+@param notify Whether or not to notify the listeners of a change.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004070'
+ name = 'notify' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004073'
+ name = 'close' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004074'
+ language = 'Java' body = ' Log.d("ddms", "Closing " + this.toString()); mOutstandingReqs.clear(); try { if (mChan != null) { mChan.close(); mChan = null; } if (mDebugger != null) { mDebugger.close(); mDebugger = null; } } catch (IOException ioe) { Log.w("ddms", "failed to close " + this); // swallow it -- not much else to do } mDevice.removeClient(this, notify); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004075'
+ name = 'isValid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004078'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether this {@link Client} has a valid connection to the application VM.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004077'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004079'
+ name = 'isValid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407A'
+ language = 'Java' body = ' return mChan != null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004075'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407B'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407E'
+ name = 'changeMask' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407F'
+ name = 'update' visibility = 'package' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004080'
+ language = 'Java' body = ' mDevice.update(this, changeMask); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407B'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BA'
+ name = 'utils' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020B9'
+ name = 'ArrayHelper.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BC'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BB'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BB'
+ name = 'ArrayHelper' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Utility class providing array to int/long conversion for data received from devices through adb. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004083'
+ name = 'swap32bitsToArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004089'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset in the array where to put the swapped value.
+ Array length must be at least offset + 4
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Swaps an unsigned value around, and puts the result in an array that can be sent to a device.
+@param value The value to swap.
+@param dest the destination array
+@param offset the offset in the array where to put the swapped value.
+ Array length must be at least offset + 4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004085'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004086'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004087'
+ name = 'dest' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004088'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408B'
+ name = 'swap32bitsToArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408C'
+ language = 'Java' body = ' dest[offset] = (byte)(value & 0x000000FF); dest[offset + 1] = (byte)((value & 0x0000FF00) >> 8); dest[offset + 2] = (byte)((value & 0x00FF0000) >> 16); dest[offset + 3] = (byte)((value & 0xFF000000) >> 24); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004083'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408D'
+ name = 'swap32bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004092'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset in the array at which the int starts
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004093'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the integer read from the array
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004094'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads a signed 32 bit integer from an array coming from a device.
+@param value the array containing the int
+@param offset the offset in the array at which the int starts
+@return the integer read from the array</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004090'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004091'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004095'
+ name = 'swap32bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004096'
+ language = 'Java' body = ' int v = 0; v |= ((int)value[offset]) & 0x000000FF; v |= (((int)value[offset + 1]) & 0x000000FF) << 8; v |= (((int)value[offset + 2]) & 0x000000FF) << 16; v |= (((int)value[offset + 3]) & 0x000000FF) << 24; return v; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004097'
+ name = 'swapU16bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset in the array at which the int starts
+ Array length must be at least offset + 2
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the integer read from the array.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads an unsigned 16 bit integer from an array coming from a device,
+ and returns it as an 'int'
+@param value the array containing the 16 bit int (2 byte).
+@param offset the offset in the array at which the int starts
+ Array length must be at least offset + 2
+@return the integer read from the array.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004099'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409A'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409B'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000409F'
+ name = 'swapU16bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A0'
+ language = 'Java' body = ' int v = 0; v |= ((int)value[offset]) & 0x000000FF; v |= (((int)value[offset + 1]) & 0x000000FF) << 8; return v; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004097'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A1'
+ name = 'swap64bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset in the array at which the int starts
+ Array length must be at least offset + 8
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the integer read from the array
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Reads a signed 64 bit integer from an array coming from a device.
+@param value the array containing the int
+@param offset the offset in the array at which the int starts
+ Array length must be at least offset + 8
+@return the integer read from the array</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A4'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A5'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A9'
+ name = 'swap64bitFromArray' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040AA'
+ language = 'Java' body = ' long v = 0; v |= ((long)value[offset]) & 0x00000000000000FFL; v |= (((long)value[offset + 1]) & 0x00000000000000FFL) << 8; v |= (((long)value[offset + 2]) & 0x00000000000000FFL) << 16; v |= (((long)value[offset + 3]) & 0x00000000000000FFL) << 24; v |= (((long)value[offset + 4]) & 0x00000000000000FFL) << 32; v |= (((long)value[offset + 5]) & 0x00000000000000FFL) << 40; v |= (((long)value[offset + 6]) & 0x00000000000000FFL) << 48; v |= (((long)value[offset + 7]) & 0x00000000000000FFL) << 56; return v; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E7'
+ name = 'log' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E6'
+ name = 'GcEventContainer.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004374'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004376'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004374'
+ name = 'GcEventContainer.java -> ValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004373'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004376'
+ name = 'GcEventContainer.java -> LogEntry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E6'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E9'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E8'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E8'
+ name = 'GcEventContainer' visibility = 'package' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Custom Event Container for the Gc event since this event doesn't simply output data in
+ int or long format, but encodes several values on 4 longs.
+ <p/>
+ The array of {@link EventValueDescription}s parsed from the "event-log-tags" file must
+ be ignored, and instead, the array returned from {@link #getValueDescriptions()} must be used. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004378'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004379'
+ name = 'GC_EVENT_TAG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437E'
+ language = 'Java' body = ' 20001'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000437F'
+ name = 'processId' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004382'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004383'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004384'
+ name = 'gcTime' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004387'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004388'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004389'
+ name = 'bytesFreed' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000438E'
+ name = 'objectsFreed' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004391'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004392'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004393'
+ name = 'actualSize' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004396'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004397'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004398'
+ name = 'allowedSize' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000439D'
+ name = 'softLimit' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A2'
+ name = 'objectsAllocated' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043A7'
+ name = 'bytesAllocated' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AC'
+ name = 'zActualSize' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043AF'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B0'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B1'
+ name = 'zAllowedSize' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B6'
+ name = 'zObjectsAllocated' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043B9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BB'
+ name = 'zBytesAllocated' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043BF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C0'
+ name = 'dlmallocFootprint' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C5'
+ name = 'mallinfoTotalAllocatedSpace' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043C9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CA'
+ name = 'externalLimit' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043CF'
+ name = 'externalBytesAllocated' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D4'
+ name = 'GcEventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D6'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D7'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D8'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D9'
+ name = 'GcEventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DA'
+ language = 'Java' body = ' super(entry, tag, data); init(data); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DB'
+ name = 'GcEventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DD'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DE'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DF'
+ name = 'tid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E0'
+ name = 'sec' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E1'
+ name = 'nsec' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E2'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E3'
+ name = 'GcEventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E4'
+ language = 'Java' body = ' super(tag, pid, tid, sec, nsec, data); init(data); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DB'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E5'
+ name = 'init' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>data
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@param data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E8'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043EB'
+ name = 'init' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043EC'
+ language = 'Java' body = ' if (data instanceof Object[]) { Object[] values = (Object[])data; for (int i = 0; i < values.length; i++) { if (values[i] instanceof Long) { parseDvmHeapInfo((Long)values[i], i); } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043ED'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F0'
+ name = 'return' isSpecification = 'false' kind = 'return'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F1'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F2'
+ language = 'Java' body = ' return EventValueType.LIST; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043ED'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F3'
+ name = 'testValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F6'
+ name = 'index' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F7'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F9'
+ name = 'compareMethod' isSpecification = 'false' kind = 'in'/>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FA'
+ name = 'testValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FB'
+ language = 'Java' body = ' // do a quick easy check on the type. if (index == 0) { if ((value instanceof String) == false) { throw new InvalidTypeException(); } } else if ((value instanceof Long) == false) { throw new InvalidTypeException(); } switch (compareMethod) { case EQUAL_TO: if (index == 0) { return processId.equals(value); } else { return getValueAsLong(index) == ((Long)value).longValue(); } case LESSER_THAN: return getValueAsLong(index) <= ((Long)value).longValue(); case LESSER_THAN_STRICT: return getValueAsLong(index) < ((Long)value).longValue(); case GREATER_THAN: return getValueAsLong(index) >= ((Long)value).longValue(); case GREATER_THAN_STRICT: return getValueAsLong(index) > ((Long)value).longValue(); case BIT_CHECK: return (getValueAsLong(index) & ((Long)value).longValue()) != 0; } throw new ArrayIndexOutOfBoundsException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FC'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FF'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004400'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004401'
+ language = 'Java' body = ' if (valueIndex == 0) { return processId; } try { return new Long(getValueAsLong(valueIndex)); } catch (InvalidTypeException e) { // this would only happened if valueIndex was 0, which we test above. } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FC'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004402'
+ name = 'getValueAsDouble' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004404'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004405'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004406'
+ name = 'getValueAsDouble' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004407'
+ language = 'Java' body = ' return (double)getValueAsLong(valueIndex); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004402'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004408'
+ name = 'getValueAsString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440B'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440C'
+ name = 'getValueAsString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440D'
+ language = 'Java' body = ' switch (valueIndex) { case 0: return processId; default: try { return Long.toString(getValueAsLong(valueIndex)); } catch (InvalidTypeException e) { // we shouldn't stop there since we test, in this method first. } } throw new ArrayIndexOutOfBoundsException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004408'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440E'
+ name = 'getValueDescriptions' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004412'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a custom array of {@link EventValueDescription} since the actual content of this
+ event (list of (long, long) does not match the values encoded into those longs.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004411'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004410'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004413'
+ name = 'getValueDescriptions' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004414'
+ language = 'Java' body = ' try { return new EventValueDescription[] { new EventValueDescription("Process Name", EventValueType.STRING), new EventValueDescription("GC Time", EventValueType.LONG, ValueType.MILLISECONDS), new EventValueDescription("Freed Objects", EventValueType.LONG, ValueType.OBJECTS), new EventValueDescription("Freed Bytes", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Soft Limit", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Actual Size (aggregate)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allowed Size (aggregate)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allocated Objects (aggregate)", EventValueType.LONG, ValueType.OBJECTS), new EventValueDescription("Allocated Bytes (aggregate)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Actual Size", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allowed Size", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allocated Objects", EventValueType.LONG, ValueType.OBJECTS), new EventValueDescription("Allocated Bytes", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Actual Size (zygote)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allowed Size (zygote)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Allocated Objects (zygote)", EventValueType.LONG, ValueType.OBJECTS), new EventValueDescription("Allocated Bytes (zygote)", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("External Allocation Limit", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("External Bytes Allocated", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("dlmalloc Footprint", EventValueType.LONG, ValueType.BYTES), new EventValueDescription("Malloc Info: Total Allocated Space", EventValueType.LONG, ValueType.BYTES), }; } catch (InvalidValueTypeException e) { // this shouldn't happen since we control manual the EventValueType and the ValueType // values. For development purpose, we assert if this happens. assert false; } // this shouldn't happen, but the compiler complains otherwise. return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004415'
+ name = 'parseDvmHeapInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004417'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004418'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004419'
+ name = 'index' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441A'
+ name = 'parseDvmHeapInfo' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441B'
+ language = 'Java' body = ' switch (index) { case 0: // [63 ] Must be zero // [62-24] ASCII process identifier // [23-12] GC time in ms // [11- 0] Bytes freed gcTime = float12ToInt((int)((data >> 12) & 0xFFFL)); bytesFreed = float12ToInt((int)(data & 0xFFFL)); // convert the long into an array, in the proper order so that we can convert the // first 5 char into a string. byte[] dataArray = new byte[8]; put64bitsToArray(data, dataArray, 0); // get the name from the string processId = new String(dataArray, 0, 5); break; case 1: // [63-62] 10 // [61-60] Reserved; must be zero // [59-48] Objects freed // [47-36] Actual size (current footprint) // [35-24] Allowed size (current hard max) // [23-12] Objects allocated // [11- 0] Bytes allocated objectsFreed = float12ToInt((int)((data >> 48) & 0xFFFL)); actualSize = float12ToInt((int)((data >> 36) & 0xFFFL)); allowedSize = float12ToInt((int)((data >> 24) & 0xFFFL)); objectsAllocated = float12ToInt((int)((data >> 12) & 0xFFFL)); bytesAllocated = float12ToInt((int)(data & 0xFFFL)); break; case 2: // [63-62] 11 // [61-60] Reserved; must be zero // [59-48] Soft limit (current soft max) // [47-36] Actual size (current footprint) // [35-24] Allowed size (current hard max) // [23-12] Objects allocated // [11- 0] Bytes allocated softLimit = float12ToInt((int)((data >> 48) & 0xFFFL)); zActualSize = float12ToInt((int)((data >> 36) & 0xFFFL)); zAllowedSize = float12ToInt((int)((data >> 24) & 0xFFFL)); zObjectsAllocated = float12ToInt((int)((data >> 12) & 0xFFFL)); zBytesAllocated = float12ToInt((int)(data & 0xFFFL)); break; case 3: // [63-48] Reserved; must be zero // [47-36] dlmallocFootprint // [35-24] mallinfo: total allocated space // [23-12] External byte limit // [11- 0] External bytes allocated dlmallocFootprint = float12ToInt((int)((data >> 36) & 0xFFFL)); mallinfoTotalAllocatedSpace = float12ToInt((int)((data >> 24) & 0xFFFL)); externalLimit = float12ToInt((int)((data >> 12) & 0xFFFL)); externalBytesAllocated = float12ToInt((int)(data & 0xFFFL)); break; default: break; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004415'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441C'
+ name = 'float12ToInt' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004420'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>f12
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004421'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Converts a 12 bit float representation into an unsigned int (returned as a long)
+@param f12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441F'
+ name = 'f12' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004422'
+ name = 'float12ToInt' visibility = 'private' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004423'
+ language = 'Java' body = ' return (f12 & 0x1FF) << ((f12 >>> 9) * 4); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004424'
+ name = 'put64bitsToArray' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset in the array where to put the value.
+ Array length must be at least offset + 8
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ puts an unsigned value in an array.
+@param value The value to put.
+@param dest the destination array
+@param offset the offset in the array where to put the value.
+ Array length must be at least offset + 8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004426'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004427'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004428'
+ name = 'dest' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004429'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442C'
+ name = 'put64bitsToArray' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442D'
+ language = 'Java' body = ' dest[offset + 7] = (byte)(value & 0x00000000000000FFL); dest[offset + 6] = (byte)((value & 0x000000000000FF00L) >> 8); dest[offset + 5] = (byte)((value & 0x0000000000FF0000L) >> 16); dest[offset + 4] = (byte)((value & 0x00000000FF000000L) >> 24); dest[offset + 3] = (byte)((value & 0x000000FF00000000L) >> 32); dest[offset + 2] = (byte)((value & 0x0000FF0000000000L) >> 40); dest[offset + 1] = (byte)((value & 0x00FF000000000000L) >> 48); dest[offset + 0] = (byte)((value & 0xFF00000000000000L) >> 56); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004424'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442E'
+ name = 'getValueAsLong' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004432'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueIndex the index of the value.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004433'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if index is 0 as it is a string value.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004434'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the long value of the <code>valueIndex</code>-th value.
+@param valueIndex the index of the value.
+@throws InvalidTypeException if index is 0 as it is a string value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004430'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004431'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004435'
+ name = 'getValueAsLong' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004436'
+ language = 'Java' body = ' switch (valueIndex) { case 0: throw new InvalidTypeException(); case 1: return gcTime; case 2: return objectsFreed; case 3: return bytesFreed; case 4: return softLimit; case 5: return actualSize; case 6: return allowedSize; case 7: return objectsAllocated; case 8: return bytesAllocated; case 9: return actualSize - zActualSize; case 10: return allowedSize - zAllowedSize; case 11: return objectsAllocated - zObjectsAllocated; case 12: return bytesAllocated - zBytesAllocated; case 13: return zActualSize; case 14: return zAllowedSize; case 15: return zObjectsAllocated; case 16: return zBytesAllocated; case 17: return externalLimit; case 18: return externalBytesAllocated; case 19: return dlmallocFootprint; case 20: return mallinfoTotalAllocatedSpace; } throw new ArrayIndexOutOfBoundsException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'
+ name = 'EventLogParser.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004438'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004439'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443A'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443C'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443F'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004440'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004441'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004442'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004445'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004446'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004447'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004449'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444B'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444D'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444E'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004450'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004451'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004452'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004453'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004438'
+ name = 'EventLogParser.java -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004439'
+ name = 'EventLogParser.java -> Log' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DB1'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443A'
+ name = 'EventLogParser.java -> MultiLineReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443C'
+ name = 'EventLogParser.java -> EventValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443D'
+ name = 'EventLogParser.java -> ValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004373'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443E'
+ name = 'EventLogParser.java -> LogEntry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443F'
+ name = 'EventLogParser.java -> ArrayHelper' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004440'
+ name = 'EventLogParser.java -> BufferedReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D3'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004441'
+ name = 'EventLogParser.java -> File' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004442'
+ name = 'EventLogParser.java -> FileOutputStream' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E36'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004445'
+ name = 'EventLogParser.java -> FileReader' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004443'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004446'
+ name = 'EventLogParser.java -> IOException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004447'
+ name = 'EventLogParser.java -> UnsupportedEncodingException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004449'
+ name = 'EventLogParser.java -> ArrayList' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444B'
+ name = 'EventLogParser.java -> Calendar' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002962'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444D'
+ name = 'EventLogParser.java -> Map' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444E'
+ name = 'EventLogParser.java -> Set' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000861'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004450'
+ name = 'EventLogParser.java -> TreeMap' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004451'
+ name = 'EventLogParser.java -> Entry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004255'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004452'
+ name = 'EventLogParser.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004453'
+ name = 'EventLogParser.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EB'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020ED'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EC'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EC'
+ name = 'EventLogParser' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parser for the "event" log.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EF'
+ name = '1' visibility = 'package' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449E'/>
+ </UML:GeneralizableElement.generalization>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004455'
+ name = 'EVENT_TAG_MAP_FILE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004458'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004459'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445A'
+ language = 'Java' body = ' "/system/etc/event-log-tags"'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Location of the tag map file on the device *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445C'
+ name = 'EVENT_TYPE_INT' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000445F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004460'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004461'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004462'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Event log entry types. These must match up with the declarations in
+ java/android/android/util/EventLog.java.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004463'
+ name = 'EVENT_TYPE_LONG' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004466'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004467'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004468'
+ language = 'Java' body = ' 1'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004469'
+ name = 'EVENT_TYPE_STRING' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446E'
+ language = 'Java' body = ' 2'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000446F'
+ name = 'EVENT_TYPE_LIST' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004472'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004473'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004474'
+ language = 'Java' body = ' 3'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004475'
+ name = 'PATTERN_SIMPLE_TAG' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004478'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004479'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447A'
+ language = 'Java' body = ' Pattern.compile( "^(\\d+)\\s+([A-Za-z0-9_]+)\\s*$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447B'
+ name = 'PATTERN_TAG_WITH_DESC' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000447F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004480'
+ language = 'Java' body = ' Pattern.compile( "^(\\d+)\\s+([A-Za-z0-9_]+)\\s*(.*)\\s*$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004481'
+ name = 'PATTERN_DESCRIPTION' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004484'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004485'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004486'
+ language = 'Java' body = ' Pattern.compile( "\\(([A-Za-z0-9_\\s]+)\\|(\\d+)(\\|\\d+){0,1}\\)")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004487'
+ name = 'TEXT_LOG_LINE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448C'
+ language = 'Java' body = ' Pattern.compile( "(\\d\\d)-(\\d\\d)\\s(\\d\\d):(\\d\\d):(\\d\\d).(\\d{3})\\s+I/([a-zA-Z0-9_]+)\\s*\\(\\s*(\\d+)\\):\\s+(.*)")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000448D'
+ name = 'mTagMap' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004490'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004491'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004492'
+ language = 'Java' body = ' new TreeMap<Integer, String>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004493'
+ name = 'mValueDescriptionMap' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004496'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004497'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004498'
+ language = 'Java' body = ' new TreeMap<Integer, EventValueDescription[]>()'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004499'
+ name = 'EventLogParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449B'
+ name = 'EventLogParser' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449C'
+ language = 'Java' body = ' '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004499'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449F'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>device The device.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success, <code>false</code> if failure or cancellation.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Inits the parser for a specific Device.
+ <p/>
+ This methods reads the event-log-tags located on the device to find out
+ what tags are being written to the event log and what their format is.
+@param device The device.
+@return <code>true</code> if success, <code>false</code> if failure or cancellation.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A2'
+ name = 'device' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A6'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A7'
+ language = 'Java' body = ' // read the event tag map file on the device. try { device.executeShellCommand("cat " + EVENT_TAG_MAP_FILE, //$NON-NLS-1$ new MultiLineReceiver() { @Override public void processNewLines(String[] lines) { for (String line : lines) { processTagLine(line); } } public boolean isCancelled() { return false; } }); } catch (IOException e) { return false; } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A8'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>tagFileContent the lines of a tag file.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success, <code>false</code> if failure.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Inits the parser with the content of a tag file.
+@param tagFileContent the lines of a tag file.
+@return <code>true</code> if success, <code>false</code> if failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AB'
+ name = 'tagFileContent' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044AF'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B0'
+ language = 'Java' body = ' for (String line : tagFileContent) { processTagLine(line); } return true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B1'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>filePath
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><code>true</code> if success, <code>false</code> if failure.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Inits the parser with a specified event-log-tags file.
+@param filePath
+@return <code>true</code> if success, <code>false</code> if failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B4'
+ name = 'filePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B8'
+ name = 'init' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B9'
+ language = 'Java' body = ' try { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line = null; do { line = reader.readLine(); if (line != null) { processTagLine(line); } } while (line != null); return true; } catch (IOException e) { return false; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BA'
+ name = 'processTagLine' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>line the line to process
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Processes a line from the event-log-tags file.
+@param line the line to process</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BD'
+ name = 'line' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C0'
+ name = 'processTagLine' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C1'
+ language = 'Java' body = ' // ignore empty lines and comment lines if (line.length() > 0 && line.charAt(0) != '#') { Matcher m = PATTERN_TAG_WITH_DESC.matcher(line); if (m.matches()) { try { int value = Integer.parseInt(m.group(1)); String name = m.group(2); if (name != null && mTagMap.get(value) == null) { mTagMap.put(value, name); } // special case for the GC tag. We ignore what is in the file, // and take what the custom GcEventContainer class tells us. // This is due to the event encoding several values on 2 longs. // @see GcEventContainer if (value == GcEventContainer.GC_EVENT_TAG) { mValueDescriptionMap.put(value, GcEventContainer.getValueDescriptions()); } else { String description = m.group(3); if (description != null && description.length() > 0) { EventValueDescription[] desc = processDescription(description); if (desc != null) { mValueDescriptionMap.put(value, desc); } } } } catch (NumberFormatException e) { // failed to convert the number into a string. just ignore it. } } else { m = PATTERN_SIMPLE_TAG.matcher(line); if (m.matches()) { int value = Integer.parseInt(m.group(1)); String name = m.group(2); if (name != null && mTagMap.get(value) == null) { mTagMap.put(value, name); } } } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C2'
+ name = 'processDescription' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004410'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C5'
+ name = 'description' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C6'
+ name = 'processDescription' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C7'
+ language = 'Java' body = ' String[] descriptions = description.split("\\s*,\\s*"); //$NON-NLS-1$ ArrayList<EventValueDescription> list = new ArrayList<EventValueDescription>(); for (String desc : descriptions) { Matcher m = PATTERN_DESCRIPTION.matcher(desc); if (m.matches()) { try { String name = m.group(1); String typeString = m.group(2); int typeValue = Integer.parseInt(typeString); EventValueType eventValueType = EventValueType.getEventValueType(typeValue); if (eventValueType == null) { // just ignore this description if the value is not recognized. // TODO: log the error. } typeString = m.group(3); if (typeString != null && typeString.length() > 0) { //skip the | typeString = typeString.substring(1); typeValue = Integer.parseInt(typeString); ValueType valueType = ValueType.getValueType(typeValue); list.add(new EventValueDescription(name, eventValueType, valueType)); } else { list.add(new EventValueDescription(name, eventValueType)); } } catch (NumberFormatException nfe) { // just ignore this description if one number is malformed. // TODO: log the error. } catch (InvalidValueTypeException e) { // just ignore this description if data type and data unit don't match // TODO: log the error. } } else { Log.e("EventLogParser", //$NON-NLS-1$ String.format("Can't parse %1$s", description)); //$NON-NLS-1$ } } if (list.size() == 0) { return null; } return list.toArray(new EventValueDescription[list.size()]); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C2'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C8'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CB'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CC'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CD'
+ language = 'Java' body = ' if (entry.len < 4) { return null; } int inOffset = 0; int tagValue = ArrayHelper.swap32bitFromArray(entry.data, inOffset); inOffset += 4; String tag = mTagMap.get(tagValue); if (tag == null) { Log.e("EventLogParser", String.format("unknown tag number: %1$d", tagValue)); } ArrayList<Object> list = new ArrayList<Object>(); if (parseBinaryEvent(entry.data, inOffset, list) == -1) { return null; } Object data; if (list.size() == 1) { data = list.get(0); } else{ data = list.toArray(); } EventContainer event = null; if (tagValue == GcEventContainer.GC_EVENT_TAG) { event = new GcEventContainer(entry, tagValue, data); } else { event = new EventContainer(entry, tagValue, data); } return event; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CE'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D1'
+ name = 'textLogLine' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D2'
+ name = 'parse' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D3'
+ language = 'Java' body = ' // line will look like // 04-29 23:16:16.691 I/dvm_gc_info( 427): <data> // where <data> is either // [value1,value2...] // or // value if (textLogLine.length() == 0) { return null; } // parse the header first Matcher m = TEXT_LOG_LINE.matcher(textLogLine); if (m.matches()) { try { int month = Integer.parseInt(m.group(1)); int day = Integer.parseInt(m.group(2)); int hours = Integer.parseInt(m.group(3)); int minutes = Integer.parseInt(m.group(4)); int seconds = Integer.parseInt(m.group(5)); int milliseconds = Integer.parseInt(m.group(6)); // convert into seconds since epoch and nano-seconds. Calendar cal = Calendar.getInstance(); cal.set(cal.get(Calendar.YEAR), month-1, day, hours, minutes, seconds); int sec = (int)Math.floor(cal.getTimeInMillis()/1000); int nsec = milliseconds * 1000000; String tag = m.group(7); // get the numerical tag value int tagValue = -1; Set<Entry<Integer, String>> tagSet = mTagMap.entrySet(); for (Entry<Integer, String> entry : tagSet) { if (tag.equals(entry.getValue())) { tagValue = entry.getKey(); break; } } if (tagValue == -1) { return null; } int pid = Integer.parseInt(m.group(8)); Object data = parseTextData(m.group(9), tagValue); if (data == null) { return null; } // now we can allocate and return the EventContainer EventContainer event = null; if (tagValue == GcEventContainer.GC_EVENT_TAG) { event = new GcEventContainer(tagValue, pid, -1 /* tid */, sec, nsec, data); } else { event = new EventContainer(tagValue, pid, -1 /* tid */, sec, nsec, data); } return event; } catch (NumberFormatException e) { return null; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D4'
+ name = 'getTagMap' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D7'
+ name = 'getTagMap' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D8'
+ language = 'Java' body = ' return mTagMap; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D9'
+ name = 'getEventInfoMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DC'
+ name = 'getEventInfoMap' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DD'
+ language = 'Java' body = ' return mValueDescriptionMap; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DE'
+ name = 'parseBinaryEvent' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Recursively convert binary log data to printable form.
+
+ This needs to be recursive because you can have lists of lists.
+
+ If we run out of room, we stop processing immediately. It's important
+ for us to check for space on every output element to avoid producing
+ garbled output.
+
+ Returns the amount read on success, -1 on failure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E1'
+ name = 'eventData' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E2'
+ name = 'dataOffset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E3'
+ name = 'list' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E5'
+ name = 'parseBinaryEvent' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E6'
+ language = 'Java' body = ' if (eventData.length - dataOffset < 1) return -1; int offset = dataOffset; int type = eventData[offset++]; //fprintf(stderr, "--- type=%d (rem len=%d)\n", type, eventDataLen); switch (type) { case EVENT_TYPE_INT: { /* 32-bit signed int */ int ival; if (eventData.length - offset < 4) return -1; ival = ArrayHelper.swap32bitFromArray(eventData, offset); offset += 4; list.add(new Integer(ival)); } break; case EVENT_TYPE_LONG: { /* 64-bit signed long */ long lval; if (eventData.length - offset < 8) return -1; lval = ArrayHelper.swap64bitFromArray(eventData, offset); offset += 8; list.add(new Long(lval)); } break; case EVENT_TYPE_STRING: { /* UTF-8 chars, not NULL-terminated */ int strLen; if (eventData.length - offset < 4) return -1; strLen = ArrayHelper.swap32bitFromArray(eventData, offset); offset += 4; if (eventData.length - offset < strLen) return -1; // get the string try { String str = new String(eventData, offset, strLen, "UTF-8"); //$NON-NLS-1$ list.add(str); } catch (UnsupportedEncodingException e) { } offset += strLen; break; } case EVENT_TYPE_LIST: { /* N items, all different types */ if (eventData.length - offset < 1) return -1; int count = eventData[offset++]; // make a new temp list ArrayList<Object> subList = new ArrayList<Object>(); for (int i = 0; i < count; i++) { int result = parseBinaryEvent(eventData, offset, subList); if (result == -1) { return result; } offset += result; } list.add(subList.toArray()); } break; default: Log.e("EventLogParser", //$NON-NLS-1$ String.format("Unknown binary event type %1$d", type)); //$NON-NLS-1$ return -1; } return offset - dataOffset; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E7'
+ name = 'parseTextData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EA'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EB'
+ name = 'tagValue' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EC'
+ name = 'parseTextData' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044ED'
+ language = 'Java' body = ' // first, get the description of what we're supposed to parse EventValueDescription[] desc = mValueDescriptionMap.get(tagValue); if (desc == null) { // TODO parse and create string values. return null; } if (desc.length == 1) { return getObjectFromString(data, desc[0].getEventValueType()); } else if (data.startsWith("[") && data.endsWith("]")) { data = data.substring(1, data.length() - 1); // get each individual values as String String[] values = data.split(","); if (tagValue == GcEventContainer.GC_EVENT_TAG) { // special case for the GC event! Object[] objects = new Object[2]; objects[0] = getObjectFromString(values[0], EventValueType.LONG); objects[1] = getObjectFromString(values[1], EventValueType.LONG); return objects; } else { // must be the same number as the number of descriptors. if (values.length != desc.length) { return null; } Object[] objects = new Object[values.length]; for (int i = 0 ; i < desc.length ; i++) { Object obj = getObjectFromString(values[i], desc[i].getEventValueType()); if (obj == null) { return null; } objects[i] = obj; } return objects; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EE'
+ name = 'getObjectFromString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F1'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F2'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F3'
+ name = 'getObjectFromString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F4'
+ language = 'Java' body = ' try { switch (type) { case INT: return Integer.valueOf(value); case LONG: return Long.valueOf(value); case STRING: return value; } } catch (NumberFormatException e) { // do nothing, we'll return null. } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F5'
+ name = 'saveTags' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>filePath the file path to write the file.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>IOException
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Recreates the event-log-tags at the specified file path.
+@param filePath the file path to write the file.
+@throws IOException</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F8'
+ name = 'filePath' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FC'
+ name = 'saveTags' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FD'
+ language = 'Java' body = ' File destFile = new File(filePath); destFile.createNewFile(); FileOutputStream fos = null; try { fos = new FileOutputStream(destFile); for (Integer key : mTagMap.keySet()) { // get the tag name String tagName = mTagMap.get(key); // get the value descriptions EventValueDescription[] descriptors = mValueDescriptionMap.get(key); String line = null; if (descriptors != null) { StringBuilder sb = new StringBuilder(); sb.append(String.format("%1$d %2$s", key, tagName)); //$NON-NLS-1$ boolean first = true; for (EventValueDescription evd : descriptors) { if (first) { sb.append(" ("); //$NON-NLS-1$ first = false; } else { sb.append(",("); //$NON-NLS-1$ } sb.append(evd.getName()); sb.append("|"); //$NON-NLS-1$ sb.append(evd.getEventValueType().getValue()); sb.append("|"); //$NON-NLS-1$ sb.append(evd.getValueType().getValue()); sb.append("|)"); //$NON-NLS-1$ } sb.append("\n"); //$NON-NLS-1$ line = sb.toString(); } else { line = String.format("%1$d %2$s\n", key, tagName); //$NON-NLS-1$ } byte[] buffer = line.getBytes(); fos.write(buffer); } } finally { if (fos != null) { fos.close(); } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F5'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F0'
+ name = 'EventContainer.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FF'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004500'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004501'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044FF'
+ name = 'EventContainer.java -> LogEntry' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F0'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004500'
+ name = 'EventContainer.java -> Matcher' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F0'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004501'
+ name = 'EventContainer.java -> Pattern' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F0'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F2'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F1'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F1'
+ name = 'EventContainer' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represents an event and its data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F4'
+ name = 'CompareMethod' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Comparison method for {@link EventContainer#testValue(int, Object, com.android.ddmlib.log.EventContainer.CompareMethod)}
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F6'
+ name = 'EQUAL_TO' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004504'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004505'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020FB'
+ name = 'LESSER_THAN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004506'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004507'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002100'
+ name = 'LESSER_THAN_STRICT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004508'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004509'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002105'
+ name = 'GREATER_THAN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210A'
+ name = 'GREATER_THAN_STRICT' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000210F'
+ name = 'BIT_CHECK' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000450F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004510'
+ name = 'mName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004513'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004514'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004515'
+ name = 'mTestString' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004518'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004519'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451A'
+ name = 'CompareMethod' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451C'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451D'
+ name = 'testString' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451E'
+ name = 'CompareMethod' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451F'
+ language = 'Java' body = ' mName = name; mTestString = testString; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004520'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004523'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the display string.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004522'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004524'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004525'
+ language = 'Java' body = ' return mName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004520'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004526'
+ name = 'testString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004529'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a short string representing the comparison.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004528'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452A'
+ name = 'testString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452B'
+ language = 'Java' body = ' return mTestString; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004526'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002114'
+ name = 'EventValueType' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002115'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Type for event data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002116'
+ name = 'UNKNOWN' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000211B'
+ name = 'INT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004530'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002120'
+ name = 'LONG' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004531'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004532'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002125'
+ name = 'STRING' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004533'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004534'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212A'
+ name = 'LIST' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004535'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004536'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000212F'
+ name = 'TREE' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004537'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004538'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004539'
+ name = 'STORAGE_PATTERN' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453E'
+ language = 'Java' body = ' Pattern.compile("^(\\d+)@(.*)$")'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000453F'
+ name = 'mValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004542'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004543'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004544'
+ name = 'getEventValueType' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004548'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the integer value.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004549'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link EventValueType} from an integer value, or <code>null</code> if no match
+ was found.
+@param value the integer value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004546'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002114'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004547'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454A'
+ name = 'getEventValueType' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454B'
+ language = 'Java' body = ' for (EventValueType type : values()) { if (type.mValue == value) { return type; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004544'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454C'
+ name = 'getStorageString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004550'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>object the object to "convert" into a storage string.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004551'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a string storing the object and its type or null if the type was not recognized.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004552'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a storage string for an {@link Object} of type supported by
+ {@link EventValueType}.
+ <p/>
+ Strings created by this method can be reloaded with
+ {@link #getObjectFromStorageString(String)}.
+ <p/>
+ NOTE: for now, only {@link #STRING}, {@link #INT}, and {@link #LONG} are supported.
+@param object the object to "convert" into a storage string.
+@return a string storing the object and its type or null if the type was not recognized.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454F'
+ name = 'object' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004553'
+ name = 'getStorageString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004554'
+ language = 'Java' body = ' if (object instanceof String) { return STRING.mValue + "@" + (String)object; //$NON-NLS-1$ } else if (object instanceof Integer) { return INT.mValue + "@" + object.toString(); //$NON-NLS-1$ } else if (object instanceof Long) { return LONG.mValue + "@" + object.toString(); //$NON-NLS-1$ } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004555'
+ name = 'getObjectFromStorageString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004559'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the storage string
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>an {@link Object} or null if the string or type were not recognized.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates an {@link Object} from a storage string created with
+ {@link #getStorageString(Object)}.
+@param value the storage string
+@return an {@link Object} or null if the string or type were not recognized.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004557'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004558'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455C'
+ name = 'getObjectFromStorageString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455D'
+ language = 'Java' body = ' Matcher m = STORAGE_PATTERN.matcher(value); if (m.matches()) { try { EventValueType type = getEventValueType(Integer.parseInt(m.group(1))); if (type == null) { return null; } switch (type) { case STRING: return m.group(2); case INT: return Integer.valueOf(m.group(2)); case LONG: return Long.valueOf(m.group(2)); } } catch (NumberFormatException nfe) { return null; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004555'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455E'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004561'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the integer value of the enum.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004560'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004562'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004563'
+ language = 'Java' body = ' return mValue; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004564'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004566'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004567'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004568'
+ language = 'Java' body = ' return super.toString().toLowerCase(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004564'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004569'
+ name = 'EventValueType' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456B'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456C'
+ name = 'EventValueType' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456D'
+ language = 'Java' body = ' mValue = value; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004569'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456E'
+ name = 'mTag' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004571'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004572'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004573'
+ name = 'pid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004576'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004577'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004578'
+ name = 'tid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000457D'
+ name = 'sec' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004580'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004581'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004582'
+ name = 'nsec' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004585'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004586'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004587'
+ name = 'mData' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458C'
+ name = 'EventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004591'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>data the data of the EventContainer.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004592'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates an {@link EventContainer} from a {@link LogEntry}.
+@param entry the LogEntry from which pid, tid, and time info is copied.
+@param tag the event tag value
+@param data the data of the EventContainer.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458E'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458F'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004590'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004593'
+ name = 'EventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004594'
+ language = 'Java' body = ' getType(data); mTag = tag; mData = data; pid = entry.pid; tid = entry.tid; sec = entry.sec; nsec = entry.nsec; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004595'
+ name = 'EventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates an {@link EventContainer} with raw data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004597'
+ name = 'tag' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004598'
+ name = 'pid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004599'
+ name = 'tid' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459A'
+ name = 'sec' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459B'
+ name = 'nsec' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459C'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459E'
+ name = 'EventContainer' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000459F'
+ language = 'Java' body = ' getType(data); mTag = tag; mData = data; this.pid = pid; this.tid = tid; this.sec = sec; this.nsec = nsec; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004595'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A0'
+ name = 'getInt' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if the data type is not {@link EventValueType#INT}.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getType()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the data as an int.
+@throws InvalidTypeException if the data type is not {@link EventValueType#INT}.
+@see #getType()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000855'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A6'
+ name = 'getInt' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A7'
+ language = 'Java' body = ' if (getType(mData) == EventValueType.INT) { return (Integer)mData; } throw new InvalidTypeException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A8'
+ name = 'getLong' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if the data type is not {@link EventValueType#LONG}.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getType()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the data as a long.
+@throws InvalidTypeException if the data type is not {@link EventValueType#LONG}.
+@see #getType()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000856'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AE'
+ name = 'getLong' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045AF'
+ language = 'Java' body = ' if (getType(mData) == EventValueType.LONG) { return (Long)mData; } throw new InvalidTypeException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B0'
+ name = 'getString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if the data type is not {@link EventValueType#STRING}.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getType()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the data as a String.
+@throws InvalidTypeException if the data type is not {@link EventValueType#STRING}.
+@see #getType()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B6'
+ name = 'getString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B7'
+ language = 'Java' body = ' if (getType(mData) == EventValueType.STRING) { return (String)mData; } throw new InvalidTypeException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B8'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueIndex the index of the value. If the data is not a list, this is ignored.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a value by index. The return type is defined by its type.
+@param valueIndex the index of the value. If the data is not a list, this is ignored.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BB'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BE'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045BF'
+ language = 'Java' body = ' return getValue(mData, valueIndex, true); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B8'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C0'
+ name = 'getValueAsDouble' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueIndex the index of the value. If the data is not a list, this is ignored.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if the data type is not {@link EventValueType#INT},
+ {@link EventValueType#LONG}, {@link EventValueType#LIST}, or if the item in the
+ list at index <code>valueIndex</code> is not of type {@link EventValueType#INT} or
+ {@link EventValueType#LONG}.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getType()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a value by index as a double.
+@param valueIndex the index of the value. If the data is not a list, this is ignored.
+@throws InvalidTypeException if the data type is not {@link EventValueType#INT},
+ {@link EventValueType#LONG}, {@link EventValueType#LIST}, or if the item in the
+ list at index <code>valueIndex</code> is not of type {@link EventValueType#INT} or
+ {@link EventValueType#LONG}.
+@see #getType()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C3'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C8'
+ name = 'getValueAsDouble' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C9'
+ language = 'Java' body = ' return getValueAsDouble(mData, valueIndex, true); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CA'
+ name = 'getValueAsString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueIndex the index of the value. If the data is not a list, this is ignored.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException if the data type is not {@link EventValueType#INT},
+ {@link EventValueType#LONG}, {@link EventValueType#STRING}, {@link EventValueType#LIST},
+ or if the item in the list at index <code>valueIndex</code> is not of type
+ {@link EventValueType#INT}, {@link EventValueType#LONG}, or {@link EventValueType#STRING}
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>#getType()
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a value by index as a String.
+@param valueIndex the index of the value. If the data is not a list, this is ignored.
+@throws InvalidTypeException if the data type is not {@link EventValueType#INT},
+ {@link EventValueType#LONG}, {@link EventValueType#STRING}, {@link EventValueType#LIST},
+ or if the item in the list at index <code>valueIndex</code> is not of type
+ {@link EventValueType#INT}, {@link EventValueType#LONG}, or {@link EventValueType#STRING}
+@see #getType()</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CD'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D2'
+ name = 'getValueAsString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D3'
+ language = 'Java' body = ' return getValueAsString(mData, valueIndex, true); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D4'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the type of the data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002114'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D8'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D9'
+ language = 'Java' body = ' return getType(mData); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D4'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DA'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the type of an object.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002114'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DD'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DF'
+ name = 'getType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E0'
+ language = 'Java' body = ' if (data instanceof Integer) { return EventValueType.INT; } else if (data instanceof Long) { return EventValueType.LONG; } else if (data instanceof String) { return EventValueType.STRING; } else if (data instanceof Object[]) { // loop through the list to see if we have another list Object[] objects = (Object[])data; for (Object obj : objects) { EventValueType type = getType(obj); if (type == EventValueType.LIST || type == EventValueType.TREE) { return EventValueType.TREE; } } return EventValueType.LIST; } return EventValueType.UNKNOWN; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E1'
+ name = 'testValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>compareMethod the method of testing
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E8'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the test passed.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E9'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidTypeException in case of type mismatch between the value to test and the value
+ to test against, or if the compare method is incompatible with the type of the values.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EA'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>CompareMethod
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Checks that the <code>index</code>-th value of this event against a provided value.
+@param index the index of the value to test
+@param value the value to test against
+@param compareMethod the method of testing
+@return true if the test passed.
+@throws InvalidTypeException in case of type mismatch between the value to test and the value
+ to test against, or if the compare method is incompatible with the type of the values.
+@see CompareMethod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E4'
+ name = 'index' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E5'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E6'
+ name = 'compareMethod' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F4'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EC'
+ name = 'testValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045ED'
+ language = 'Java' body = ' EventValueType type = getType(mData); if (index > 0 && type != EventValueType.LIST) { throw new InvalidTypeException(); } Object data = mData; if (type == EventValueType.LIST) { data = ((Object[])mData)[index]; } if (data.getClass().equals(data.getClass()) == false) { throw new InvalidTypeException(); } switch (compareMethod) { case EQUAL_TO: return data.equals(value); case LESSER_THAN: if (data instanceof Integer) { return (((Integer)data).compareTo((Integer)value) <= 0); } else if (data instanceof Long) { return (((Long)data).compareTo((Long)value) <= 0); } // other types can't use this compare method. throw new InvalidTypeException(); case LESSER_THAN_STRICT: if (data instanceof Integer) { return (((Integer)data).compareTo((Integer)value) < 0); } else if (data instanceof Long) { return (((Long)data).compareTo((Long)value) < 0); } // other types can't use this compare method. throw new InvalidTypeException(); case GREATER_THAN: if (data instanceof Integer) { return (((Integer)data).compareTo((Integer)value) >= 0); } else if (data instanceof Long) { return (((Long)data).compareTo((Long)value) >= 0); } // other types can't use this compare method. throw new InvalidTypeException(); case GREATER_THAN_STRICT: if (data instanceof Integer) { return (((Integer)data).compareTo((Integer)value) > 0); } else if (data instanceof Long) { return (((Long)data).compareTo((Long)value) > 0); } // other types can't use this compare method. throw new InvalidTypeException(); case BIT_CHECK: if (data instanceof Integer) { return (((Integer)data).intValue() & ((Integer)value).intValue()) != 0; } else if (data instanceof Long) { return (((Long)data).longValue() & ((Long)value).longValue()) != 0; } // other types can't use this compare method. throw new InvalidTypeException(); default : throw new InvalidTypeException(); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EE'
+ name = 'getValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'true'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F1'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F2'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F3'
+ name = 'recursive' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F4'
+ name = 'getValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F5'
+ language = 'Java' body = ' EventValueType type = getType(data); switch (type) { case INT: case LONG: case STRING: return data; case LIST: if (recursive) { Object[] list = (Object[]) data; if (valueIndex >= 0 && valueIndex < list.length) { return getValue(list[valueIndex], valueIndex, false); } } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F6'
+ name = 'getValueAsDouble' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086F'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F9'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FA'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FB'
+ name = 'recursive' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FC'
+ name = 'getValueAsDouble' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FD'
+ language = 'Java' body = ' EventValueType type = getType(data); switch (type) { case INT: return ((Integer)data).doubleValue(); case LONG: return ((Long)data).doubleValue(); case STRING: throw new InvalidTypeException(); case LIST: if (recursive) { Object[] list = (Object[]) data; if (valueIndex >= 0 && valueIndex < list.length) { return getValueAsDouble(list[valueIndex], valueIndex, false); } } } throw new InvalidTypeException(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FE'
+ name = 'getValueAsString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004600'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004601'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004602'
+ name = 'valueIndex' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004603'
+ name = 'recursive' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004604'
+ name = 'getValueAsString' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004605'
+ language = 'Java' body = ' EventValueType type = getType(data); switch (type) { case INT: return ((Integer)data).toString(); case LONG: return ((Long)data).toString(); case STRING: return (String)data; case LIST: if (recursive) { Object[] list = (Object[]) data; if (valueIndex >= 0 && valueIndex < list.length) { return getValueAsString(list[valueIndex], valueIndex, false); } } else { throw new InvalidTypeException( "getValueAsString() doesn't support EventValueType.TREE"); } } throw new InvalidTypeException( "getValueAsString() unsupported type:" + type); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FE'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002134'
+ name = 'InvalidValueTypeException.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004607'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004608'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460B'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004607'
+ name = 'InvalidValueTypeException.java -> EventValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002134'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004608'
+ name = 'InvalidValueTypeException.java -> ValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002134'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004373'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460B'
+ name = 'InvalidValueTypeException.java -> Serializable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002134'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004609'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002136'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002135'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002135'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002137'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Exception thrown when associating an {@link EventValueType} with an incompatible
+ {@link ValueType}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460E'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460F'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004612'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004613'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004614'
+ language = 'Java' body = ' 1L'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004615'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Needed by {@link Serializable}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004616'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004618'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004619'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the default detail message.
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461A'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461B'
+ language = 'Java' body = ' super("Invalid Type"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004616'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461C'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004620'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004621'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified detail message.
+@param message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461E'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004622'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004623'
+ language = 'Java' body = ' super(message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004624'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004628'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004629'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified cause and a detail message of
+ <code>(cause==null ? null : cause.toString())</code> (which typically contains
+ the class and detail message of cause).
+@param cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004627'
+ name = 'cause' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462B'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462C'
+ language = 'Java' body = ' super(cause); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004624'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462D'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004632'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004633'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004634'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified detail message and cause.
+@param message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+@param cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462F'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004631'
+ name = 'cause' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004635'
+ name = 'InvalidValueTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004636'
+ language = 'Java' body = ' super(message, cause); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462D'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002138'
+ name = 'InvalidTypeException.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004638'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004638'
+ name = 'InvalidTypeException.java -> Serializable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002138'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004609'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213A'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002139'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002139'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Exception thrown when accessing an {@link EventContainer} value with the wrong type.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463B'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463C'
+ name = 'serialVersionUID' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004640'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004641'
+ language = 'Java' body = ' 1L'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004642'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Needed by {@link Serializable}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086E'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004643'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004645'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004646'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the default detail message.
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004647'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004648'
+ language = 'Java' body = ' super("Invalid Type"); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004643'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004649'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464E'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified detail message.
+@param message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464B'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464F'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004650'
+ language = 'Java' body = ' super(message); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004649'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004651'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004655'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004656'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004657'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified cause and a detail message of
+ <code>(cause==null ? null : cause.toString())</code> (which typically contains
+ the class and detail message of cause).
+@param cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004654'
+ name = 'cause' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004658'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004659'
+ language = 'Java' body = ' super(cause); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004651'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465A'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004660'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>java.lang.Exception
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004661'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Constructs a new exception with the specified detail message and cause.
+@param message the detail message. The detail message is saved for later retrieval
+ by the {@link Throwable#getMessage()} method.
+@param cause the cause (which is saved for later retrieval by the
+ {@link Throwable#getCause()} method). (A <code>null</code> value is permitted,
+ and indicates that the cause is nonexistent or unknown.)
+@see java.lang.Exception</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465C'
+ name = 'message' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465E'
+ name = 'cause' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004662'
+ name = 'InvalidTypeException' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004663'
+ language = 'Java' body = ' super(message, cause); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465A'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213C'
+ name = 'LogReceiver.java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004665'/>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004666'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004665'
+ name = 'LogReceiver.java -> ArrayHelper' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BB'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004666'
+ name = 'LogReceiver.java -> InvalidParameterException' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295E'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213E'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213D'
+ name = 'LogReceiver' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000213F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Receiver able to provide low level parsing for device-side log services.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002140'
+ name = 'LogEntry' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002141'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represents a log entry and its raw data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466F'
+ name = 'len' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004672'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004673'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004674'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> 16bit unsigned: length of the payload. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004675'
+ name = 'pid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004678'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004679'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> pid of the process that generated this {@link LogEntry} *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467B'
+ name = 'tid' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000467F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004680'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> tid of the process that generated this {@link LogEntry} *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004681'
+ name = 'sec' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004684'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004685'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004686'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Seconds since epoch. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004687'
+ name = 'nsec' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> nanoseconds. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000468D'
+ name = 'data' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004690'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004691'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004692'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> The entry's raw data. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002142'
+ name = 'ILogListener' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002143'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Classes which implement this interface provide a method that deals
+ with {@link LogEntry} objects coming from log service through a {@link LogReceiver}.
+ <p/>This interface provides two methods.
+ <ul>
+ <li>{@link #newEntry(com.android.ddmlib.log.LogReceiver.LogEntry)} provides a
+ first level of parsing, extracting {@link LogEntry} objects out of the log service output.</li>
+ <li>{@link #newData(byte[], int, int)} provides a way to receive the raw information
+ coming directly from the log service.</li>
+ </ul></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004694'
+ name = 'newEntry' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004698'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>entry the new log entry.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004699'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when a new {@link LogEntry} has been parsed by the {@link LogReceiver}.
+@param entry the new log entry.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004696'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004697'
+ name = 'entry' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002140'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469A'
+ name = 'newData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>length the length of the new data.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Sent when new raw data is coming from the log service.
+@param data the raw data buffer.
+@param offset the offset into the buffer signaling the beginning of the new data.
+@param length the length of the new data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469D'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469E'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469F'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004668'
+ name = 'ENTRY_HEADER_SIZE' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466D'
+ language = 'Java' body = ' 20'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A2'
+ name = 'mCurrentEntry' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Current {@link LogEntry} being read, before sending it to the listener. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002140'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046A8'
+ name = 'mEntryHeaderBuffer' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AD'
+ language = 'Java' body = ' new byte[ENTRY_HEADER_SIZE]'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AE'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Temp buffer to store partial entry headers. *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046AF'
+ name = 'mEntryHeaderOffset' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B3'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B4'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B5'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Offset in the partial header buffer *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B6'
+ name = 'mEntryDataOffset' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046B9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BB'
+ language = 'Java' body = ' 0'/>
+ </UML:Attribute.initialValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Offset in the partial entry data *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046BD'
+ name = 'mListener' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue> Listener waiting for receive fully read {@link LogEntry} objects *</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002142'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C3'
+ name = 'mIsCancelled' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C8'
+ language = 'Java' body = ' false'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C9'
+ name = 'LogReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>listener the listener to receive new log entries.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a {@link LogReceiver} with an {@link ILogListener}.
+ <p/>
+ The {@link ILogListener} will receive new log entries as they are parsed, in the form
+ of {@link LogEntry} objects.
+@param listener the listener to receive new log entries.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CB'
+ name = 'listener' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002142'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CE'
+ name = 'LogReceiver' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CF'
+ language = 'Java' body = ' mListener = listener; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046C9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D0'
+ name = 'parseNewData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D6'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>length the length of the new data.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Parses new data coming from the log service.
+@param data the data buffer
+@param offset the offset into the buffer signaling the beginning of the new data.
+@param length the length of the new data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D3'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D4'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D5'
+ name = 'length' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D8'
+ name = 'parseNewData' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D9'
+ language = 'Java' body = ' // notify the listener of new raw data if (mListener != null) { mListener.newData(data, offset, length); } // loop while there is still data to be read and the receiver has not be cancelled. while (length > 0 && mIsCancelled == false) { // first check if we have no current entry. if (mCurrentEntry == null) { if (mEntryHeaderOffset + length < ENTRY_HEADER_SIZE) { // if we don't have enough data to finish the header, save // the data we have and return System.arraycopy(data, offset, mEntryHeaderBuffer, mEntryHeaderOffset, length); mEntryHeaderOffset += length; return; } else { // we have enough to fill the header, let's do it. // did we store some part at the beginning of the header? if (mEntryHeaderOffset != 0) { // copy the rest of the entry header into the header buffer int size = ENTRY_HEADER_SIZE - mEntryHeaderOffset; System.arraycopy(data, offset, mEntryHeaderBuffer, mEntryHeaderOffset, size); // create the entry from the header buffer mCurrentEntry = createEntry(mEntryHeaderBuffer, 0); // since we used the whole entry header buffer, we reset the offset mEntryHeaderOffset = 0; // adjust current offset and remaining length to the beginning // of the entry data offset += size; length -= size; } else { // create the entry directly from the data array mCurrentEntry = createEntry(data, offset); // adjust current offset and remaining length to the beginning // of the entry data offset += ENTRY_HEADER_SIZE; length -= ENTRY_HEADER_SIZE; } } } // at this point, we have an entry, and offset/length have been updated to skip // the entry header. // if we have enough data for this entry or more, we'll need to end this entry if (length >= mCurrentEntry.len - mEntryDataOffset) { // compute and save the size of the data that we have to read for this entry, // based on how much we may already have read. int dataSize = mCurrentEntry.len - mEntryDataOffset; // we only read what we need, and put it in the entry buffer. System.arraycopy(data, offset, mCurrentEntry.data, mEntryDataOffset, dataSize); // notify the listener of a new entry if (mListener != null) { mListener.newEntry(mCurrentEntry); } // reset some flags: we have read 0 data of the current entry. // and we have no current entry being read. mEntryDataOffset = 0; mCurrentEntry = null; // and update the data buffer info to the end of the current entry / start // of the next one. offset += dataSize; length -= dataSize; } else { // we don't have enough data to fill this entry, so we store what we have // in the entry itself. System.arraycopy(data, offset, mCurrentEntry.data, mEntryDataOffset, length); // save the amount read for the data. mEntryDataOffset += length; return; } } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DA'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns whether this receiver is canceling the remote service.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DE'
+ name = 'isCancelled' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DF'
+ language = 'Java' body = ' return mIsCancelled; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DA'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E0'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Cancels the current remote service.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E4'
+ name = 'cancel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E5'
+ language = 'Java' body = ' mIsCancelled = true; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E0'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E6'
+ name = 'createEntry' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046EB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>offset the offset of the first byte from the buffer representing the entry.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046EC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>a new {@link LogEntry} or <code>null</code> if some error happened.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046ED'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Creates a {@link LogEntry} from the array of bytes. This expects the data buffer size
+ to be at least <code>offset + {@link #ENTRY_HEADER_SIZE}</code>.
+@param data the data buffer the entry is read from.
+@param offset the offset of the first byte from the buffer representing the entry.
+@return a new {@link LogEntry} or <code>null</code> if some error happened.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002140'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E9'
+ name = 'data' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046EA'
+ name = 'offset' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046EE'
+ name = 'createEntry' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046EF'
+ language = 'Java' body = ' if (data.length < offset + ENTRY_HEADER_SIZE) { throw new InvalidParameterException( "Buffer not big enough to hold full LoggerEntry header"); } // create the new entry and fill it. LogEntry entry = new LogEntry(); entry.len = ArrayHelper.swapU16bitFromArray(data, offset); // we've read only 16 bits, but since there's also a 16 bit padding, // we can skip right over both. offset += 4; entry.pid = ArrayHelper.swap32bitFromArray(data, offset); offset += 4; entry.tid = ArrayHelper.swap32bitFromArray(data, offset); offset += 4; entry.sec = ArrayHelper.swap32bitFromArray(data, offset); offset += 4; entry.nsec = ArrayHelper.swap32bitFromArray(data, offset); offset += 4; // allocate the data entry.data = new byte[entry.len]; return entry; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Component xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002144'
+ name = 'EventValueDescription.java' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F1'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F1'
+ name = 'EventValueDescription.java -> EventValueType' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Component xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002144'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ <UML:Component.residentElement>
+ <UML:ElementResidence xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002146'>
+ <UML:ElementResidence.resident>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002145'/>
+ </UML:ElementResidence.resident>
+ </UML:ElementResidence>
+ </UML:Component.residentElement>
+ </UML:Component>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002145'
+ name = 'EventValueDescription' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002147'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Describes an {@link EventContainer} value.
+ <p/>
+ This is a stand-alone object, not linked to a particular Event. It describes the value, by
+ name, type ({@link EventValueType}), and (if needed) value unit ({@link ValueType}).
+ <p/>
+ The index of the value is not contained within this class, and is instead dependent on the
+ index of this particular object in the array of {@link EventValueDescription} returned by
+ {@link EventLogParser#getEventInfoMap()} when queried for a particular event tag.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002148'
+ name = 'ValueType' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'true' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002149'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Represents the type of a numerical value. This is used to display values of vastly different
+ type/range in graphs. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214A'
+ name = 'NOT_APPLICABLE' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'classifier' changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F4'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F5'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000214F'
+ name = 'OBJECTS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F7'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002154'
+ name = 'BYTES' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002159'
+ name = 'MILLISECONDS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000215E'
+ name = 'ALLOCATIONS' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002163'
+ name = 'ID' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FE'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046FF'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002168'
+ name = 'PERCENT' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'frozen' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004700'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004701'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004702'
+ name = 'mValue' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004705'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004706'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004707'
+ name = 'checkType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>type the {@link EventValueType} to check.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidValueTypeException if the types are not compatible.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Checks that the {@link EventValueType} is compatible with the {@link ValueType}.
+@param type the {@link EventValueType} to check.
+@throws InvalidValueTypeException if the types are not compatible.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004709'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470A'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470E'
+ name = 'checkType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000470F'
+ language = 'Java' body = ' if ((type != EventValueType.INT && type != EventValueType.LONG) && this != NOT_APPLICABLE) { throw new InvalidValueTypeException( String.format("%1$s doesn't support type %2$s", type, this)); } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004707'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004710'
+ name = 'getValueType' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004714'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the integer value.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004715'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns a {@link ValueType} from an integer value, or <code>null</code> if no match
+ were found.
+@param value the integer value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004712'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002148'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004713'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004716'
+ name = 'getValueType' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004717'
+ language = 'Java' body = ' for (ValueType type : values()) { if (type.mValue == value) { return type; } } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004710'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004718'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns the integer value of the enum.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471C'
+ name = 'getValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471D'
+ language = 'Java' body = ' return mValue; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004718'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471E'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004720'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004721'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004722'
+ language = 'Java' body = ' return super.toString().toLowerCase(); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004723'
+ name = 'ValueType' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004725'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004726'
+ name = 'ValueType' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004727'
+ language = 'Java' body = ' mValue = value; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004723'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004728'
+ name = 'mName' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472C'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000472D'
+ name = 'mEventValueType' visibility = 'private' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004730'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004731'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004732'
+ name = 'mValueType' visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004735'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004736'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002148'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004737'
+ name = 'EventValueDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>type
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Builds a {@link EventValueDescription} with a name and a type.
+ <p/>
+ If the type is {@link EventValueType#INT} or {@link EventValueType#LONG}, the
+ {@link #mValueType} is set to {@link ValueType#BYTES} by default. It set to
+ {@link ValueType#NOT_APPLICABLE} for all other {@link EventValueType} values.
+@param name
+@param type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004739'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473A'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473D'
+ name = 'EventValueDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473E'
+ language = 'Java' body = ' mName = name; mEventValueType = type; if (mEventValueType == EventValueType.INT || mEventValueType == EventValueType.LONG) { mValueType = ValueType.BYTES; } else { mValueType = ValueType.NOT_APPLICABLE; } '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004737'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473F'
+ name = 'EventValueDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000082B'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004744'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>valueType
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004745'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>InvalidValueTypeException if type and valuetype are not compatible.
+
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004746'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Builds a {@link EventValueDescription} with a name and a type, and a {@link ValueType}.
+ <p/>
+@param name
+@param type
+@param valueType
+@throws InvalidValueTypeException if type and valuetype are not compatible.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004741'
+ name = 'name' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004742'
+ name = 'type' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004743'
+ name = 'valueType' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002148'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004747'
+ name = 'EventValueDescription' visibility = 'package' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004748'
+ language = 'Java' body = ' mName = name; mEventValueType = type; mValueType = valueType; mValueType.checkType(mEventValueType); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000473F'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004749'
+ name = 'getName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the Name.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@return the Name.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474E'
+ name = 'getName' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474F'
+ language = 'Java' body = ' return mName; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004749'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004750'
+ name = 'getEventValueType' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004753'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link EventValueType}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004754'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@return the {@link EventValueType}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004752'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004755'
+ name = 'getEventValueType' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004756'
+ language = 'Java' body = ' return mEventValueType; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004750'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004757'
+ name = 'getValueType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>the {@link ValueType}.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475B'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+@return the {@link ValueType}.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004759'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002148'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475C'
+ name = 'getValueType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475D'
+ language = 'Java' body = ' return mValueType; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004757'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475E'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004760'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004761'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004762'
+ language = 'Java' body = ' if (mValueType != ValueType.NOT_APPLICABLE) { return String.format("%1$s (%2$s, %3$s)", mName, mEventValueType.toString(), mValueType.toString()); } return String.format("%1$s (%2$s)", mName, mEventValueType.toString()); '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004763'
+ name = 'checkForType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004767'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the value to check.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004768'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true if the value is of the proper type for this receiver.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004769'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Checks if the value is of the proper type for this receiver.
+@param value the value to check.
+@return true if the value is of the proper type for this receiver.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004765'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004766'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476A'
+ name = 'checkForType' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476B'
+ language = 'Java' body = ' switch (mEventValueType) { case INT: return value instanceof Integer; case LONG: return value instanceof Long; case STRING: return value instanceof String; case LIST: return value instanceof Object[]; } return false; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004763'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476C'
+ name = 'getObjectFromString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004770'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>value the value of the object expressed as a string.
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004771'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>an object or null if the conversion could not be done.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004772'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>
+ Returns an object of a valid type (based on the value returned by
+ {@link #getEventValueType()}) from a String value.
+ <p/>
+ IMPORTANT {@link EventValueType#LIST} and {@link EventValueType#TREE} are not
+ supported.
+@param value the value of the object expressed as a string.
+@return an object or null if the conversion could not be done.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000850'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476F'
+ name = 'value' isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004773'
+ name = 'getObjectFromString' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004774'
+ language = 'Java' body = ' switch (mEventValueType) { case INT: try { return Integer.valueOf(value); } catch (NumberFormatException e) { return null; } case LONG: try { return Long.valueOf(value); } catch (NumberFormatException e) { return null; } case STRING: return value; } return null; '/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476C'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004373'
+ name = 'ValueType' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004375'
+ name = 'LogEntry' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004378'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E8'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020F1'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000443B'
+ name = 'EventValueType' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449E'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020EF'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460E'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002135'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463B'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002139'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217C'
+ name = 'DebuggerStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002186'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F58'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C8'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F60'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E2'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F64'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228A'
+ name = 'SyncResult' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022A0'
+ name = 'Device -> IDevice' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6C'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DD'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F6F'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002412'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F72'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244B'
+ name = 'AdbResponse' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000244E'
+ name = 'IDebugPortProvider' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002450'
+ name = 'DeviceState' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258F'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F3'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F82'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CA'
+ name = 'AllocationInfo -> Comparable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C9'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026CB'
+ name = 'AllocationInfo -> IStackTraceInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8A'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5C'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002706'
+ name = 'IMethodProfilingHandler' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002708'
+ name = 'MethodProfilingStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270D'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F8E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CB'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F92'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A8'
+ name = 'NullOutputReceiver -> IShellOutputReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F96'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B3A'
+ name = 'MultiLineReceiver -> IShellOutputReceiver' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002020'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B9A'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD1'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2C'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD5'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C37'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD7'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF1'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002004'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E2C'
+ name = 'FileEntry' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F54'
+ name = 'NullSyncProgresMonitor -> ISyncProgressMonitor' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200F'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000200D'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003200'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201C'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003204'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201E'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003239'
+ name = 'HeapSegment -> Comparable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002024'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C9'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323C'
+ name = 'HeapSegmentElement -> Comparable' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002027'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C9'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363B'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002036'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368D'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002040'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368F'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002041'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Abstraction xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003939'
+ name = 'ThreadInfo -> IStackTraceInfo' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002067'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F5C'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C1'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000206B'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FC7'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC4'
+ name = 'AllocationTrackingStatus' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AC6'
+ name = 'IHprofDumpHandler' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Generalization xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AD0'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002073'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002063'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF5'
+ name = 'HeapSegmentElement' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E88'
+ name = 'IClientChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEA'
+ name = 'documentation' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEC'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5D'
+ name = 'param' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5F'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D69'
+ name = 'return' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D6A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D6B'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D70'
+ name = 'javaImport' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D78'
+ name = 'throws' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D79'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D7A'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D81'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DBF'
+ name = 'junit' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC0'
+ name = 'framework' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1'
+ name = 'Test' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC3'
+ name = 'TestListener' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC5'
+ name = 'TestResult' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EBD'
+ name = 'AssertionFailedError' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC4'
+ name = 'TestCase' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC7'
+ name = 'textui' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC8'
+ name = 'ResultPrinter' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:DataType xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E78'
+ name = 'String[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'
+ name = 'GeneratedFromImport' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB7'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0A'
+ name = 'return ' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F0C'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:DataType xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA9'
+ name = 'StackTraceElement[]' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A3'
+ name = 'byte[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A4'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015A2'
+ name = 'TestFailure' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E5'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155E'
+ name = 'Option(names' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000155F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001560'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001701'
+ name = 'returns ' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001702'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001703'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A3A'
+ name = 'returns' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A3B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A3C'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B15'
+ name = 'throw' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B16'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B17'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4A'
+ name = 'java' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4B'
+ name = 'util' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4C'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4F'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADF'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE2'
+ name = 'Arrays' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7B'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E71'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002242'
+ name = 'regex' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002243'
+ name = 'Matcher' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002244'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002246'
+ name = 'Pattern' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002247'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002296'
+ name = 'Collections' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002962'
+ name = 'Calendar' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003479'
+ name = 'Comparator' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C07'
+ name = 'TreeMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0A'
+ name = 'TreeSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004255'
+ name = 'Entry' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABB'
+ name = 'io' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABC'
+ name = 'File' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABD'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C20'
+ name = 'PrintStream' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C21'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C23'
+ name = 'PrintWriter' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C24'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217E'
+ name = 'IOException' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000217F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D3'
+ name = 'BufferedReader' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D6'
+ name = 'ByteArrayInputStream' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021D7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DA'
+ name = 'InputStreamReader' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DB'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002453'
+ name = 'UnsupportedEncodingException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002454'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C47'
+ name = 'StringWriter' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C48'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E30'
+ name = 'FileInputStream' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E31'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E33'
+ name = 'FileNotFoundException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E34'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E36'
+ name = 'FileOutputStream' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E37'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004443'
+ name = 'FileReader' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004444'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004609'
+ name = 'Serializable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460A'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD9'
+ name = 'lang' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADA'
+ name = 'reflect' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADB'
+ name = 'Field' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B73'
+ name = 'ParameterizedType' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B74'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Interface>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B76'
+ name = 'Type' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B77'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0B'
+ name = 'annotation' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0C'
+ name = 'ElementType' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0D'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C0F'
+ name = 'Retention' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C10'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Interface>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C12'
+ name = 'RetentionPolicy' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C13'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C15'
+ name = 'Target' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C16'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Interface>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306A'
+ name = 'State' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002181'
+ name = 'nio' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002182'
+ name = 'ByteBuffer' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002183'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DE'
+ name = 'ByteOrder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021DF'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000228F'
+ name = 'channels' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002290'
+ name = 'SocketChannel' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002291'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245B'
+ name = 'AsynchronousCloseException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245C'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245E'
+ name = 'SelectionKey' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000245F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002461'
+ name = 'Selector' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002462'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B3'
+ name = 'CancelledKeyException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B4'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B6'
+ name = 'NotYetBoundException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B7'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BB'
+ name = 'ServerSocketChannel' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BC'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AF'
+ name = 'BufferOverflowException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027B0'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322E'
+ name = 'BufferUnderflowException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000322F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002457'
+ name = 'net' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002458'
+ name = 'UnknownHostException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AA'
+ name = 'InetAddress' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AD'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295D'
+ name = 'security' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295E'
+ name = 'InvalidParameterException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000295F'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003233'
+ name = 'text' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003234'
+ name = 'ParseException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003235'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>true</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EB5'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6B'
+ name = 'Test' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEB'
+ name = 'ITestRunListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB2'
+ name = 'IDeviceChangeListener' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3D'
+ name = 'ILogOutput' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Stereotype xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FA3'
+ name = 'enumeration' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203A'
+ name = 'see' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203B'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203C'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C7'
+ name = 'RuntimeException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002352'
+ name = 'Client[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E1'
+ name = 'Device[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268E'
+ name = 'Long[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269E'
+ name = 'NativeStackCallInfo[]' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C9'
+ name = 'Comparable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027CA'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029D5'
+ name = 'int[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CB4'
+ name = 'char[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAD'
+ name = 'FileEntry[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF2'
+ name = 'File[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316C'
+ name = 'IDevice[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003209'
+ name = 'Process' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361D'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:TagDefinition xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E2'
+ name = 'deprecated' isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E4'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF0'
+ name = 'AllocationInfo[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEC'
+ name = 'ThreadInfo[]' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:DataType xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004410'
+ name = 'EventValueDescription[]' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C7'
+ name = 'IDevice' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D56'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D57'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D7F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D8A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DCA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E21'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E3D'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E45'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E70'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EC1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F19'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F5A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F87'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F88'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FB4'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FC8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FF5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000102C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001060'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001083'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001086'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000108C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010B4'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010BE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010F1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010F2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001112'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001115'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000111D'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000112A'
+ name = 'StringBuffer' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000113F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000012FD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001301'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001303'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000130B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000130D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001311'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001315'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001319'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000131B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000131C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000131D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000131E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001320'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001321'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001338'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001342'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001367'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001373'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013C7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013E3'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013EB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001413'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001453'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014A5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014E3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000150E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000150F'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001538'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001472'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001476'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001479'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000147F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001481'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001485'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001489'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001491'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A3'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014BD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014C6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014EA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014F6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000154A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001566'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000156E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001591'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015CD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001677'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016B6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016E4'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001715'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001535'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000153D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001543'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001551'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001580'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001582'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001584'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001585'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001586'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001587'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000159B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015B0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015B1'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015D4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015FB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001614'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001649'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001689'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001693'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001694'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C2'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016C5'
+ name = 'Arrays' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016CA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001710'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000173C'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000174C'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000174F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000178D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001798'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017A5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017AD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017B5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017BD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017C5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017CD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017D5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017DD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001805'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000184A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001876'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001877'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018A7'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018E9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000196D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019AB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019D6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019D7'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A06'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A0D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A40'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A41'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A58'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A5C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A99'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ACB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ACC'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AE9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001871'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001873'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001877'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000187D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000187F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001883'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001885'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001886'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001888'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000188B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000188D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000188E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000188F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001890'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001891'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001892'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001893'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001894'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001895'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001896'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001897'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000189C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000189D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000189E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018AB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018B3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018B5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018B6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018B8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018BC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018C2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018C3'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018CC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018E2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001903'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000190E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001936'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001938'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001972'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001978'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001979'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A1'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A2'
+ name = 'Arrays' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019A5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019E1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019E2'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A0D'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A15'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A16'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A54'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A5F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A6B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A72'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A79'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A80'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A87'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A8E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A95'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A9C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AAB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AEF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B1C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B1D'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B4C'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B8B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B91'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BC6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C05'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C44'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C70'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C71'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CA0'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CA5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CD4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CD5'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CE6'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CE8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D25'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D57'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D58'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D72'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001973'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001975'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001979'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000197F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001981'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001985'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000198B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001992'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001994'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001995'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001996'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001997'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001998'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001999'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000199A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000199B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000199C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000199D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000199E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019AB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019AD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019AE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019AF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019BE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D3'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A13'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A1F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A49'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A51'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB5'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ABF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ADE'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE1'
+ name = 'Arrays' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AE6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B27'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B33'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B34'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B6A'
+ name = 'Class' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7A'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B7D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BEE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C03'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C26'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C6A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C97'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C98'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC7'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D07'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D0F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D46'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D85'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DC4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DF1'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E20'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E25'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E54'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E5E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E5F'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E70'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E74'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EB1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EE4'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EFE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F3C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F79'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F7B'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD4'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD6'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001FD9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002000'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002012'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201B'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000201D'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000203F'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020BF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020DF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002185'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C6'
+ name = 'RuntimeException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021E1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002249'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002293'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002295'
+ name = 'Collections' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002298'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022DC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002411'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002456'
+ name = 'UnknownHostException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002465'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002467'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000246C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C0'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002538'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002539'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000258E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025F2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000262C'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002630'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000270C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027A9'
+ name = 'InetAddress' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027AC'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027BF'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C2'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C4'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000027C9'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002955'
+ name = 'InetAddress' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002957'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002959'
+ name = 'UnknownHostException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002961'
+ name = 'Calendar' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002964'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002968'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000029F2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A44'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A53'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B37'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B39'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B71'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B99'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C29'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2B'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C34'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C35'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C36'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C4B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CC1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0D'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D47'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DF0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3B'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E3E'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E40'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F10'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F24'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F53'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306C'
+ name = 'InetAddress' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000306E'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003070'
+ name = 'UnknownHostException' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003073'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003077'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FD'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031FF'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003201'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003202'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003203'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003208'
+ name = 'Process' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003237'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003385'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000338A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003474'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003476'
+ name = 'Collections' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347B'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000347F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000352D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003535'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361C'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000363A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368A'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368C'
+ name = 'Thread' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000368E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036E7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037A5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DD'
+ name = 'InetAddress' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037DF'
+ name = 'InetSocketAddress' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037E7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003889'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038C3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003938'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039C0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039F1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACB'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACD'
+ name = 'Collections' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ACF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BF9'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFC'
+ name = 'Collections' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BFE'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C00'
+ name = 'HashSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C06'
+ name = 'TreeMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C09'
+ name = 'TreeSet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C0C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C14'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C1D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C24'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CD7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E90'
+ name = 'HashMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E92'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004082'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040AC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040DE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004103'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000411C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004146'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000417F'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000421D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004251'
+ name = 'Hashtable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004257'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004377'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004448'
+ name = 'ArrayList' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444A'
+ name = 'Calendar' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444F'
+ name = 'TreeMap' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004454'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004502'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004503'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000452C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000460D'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004626'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004630'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004639'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000463A'
+ name = 'Exception' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004653'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465D'
+ name = 'Throwable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004667'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000466E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F2'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046F3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004781'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047C6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000489F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F1'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F9'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004901'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004909'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004913'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000491B'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004922'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004929'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004930'
+ name = 'StringBuilder' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004942'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D65'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D71'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D97'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E18'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E2D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E42'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E61'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001089'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010F9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000012FF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001305'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000130F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001313'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001317'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000132A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001351'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000135D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013BE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013D3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013E8'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001406'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001474'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000147B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000147D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001483'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001487'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014AE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014D5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014E0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001541'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001556'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000156B'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001589'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000153B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000153F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001541'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001558'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001572'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015A4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015AA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015AD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015C6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015E4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015EF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001638'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000164B'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000170E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017F4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018CC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A1D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A27'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A34'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ADD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B04'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B21'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001875'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001879'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000187B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001881'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000188A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000189A'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018A0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018AD'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018AF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018B1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018BA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018BE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018C0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018D4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018F1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018FB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000192D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001937'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019E0'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AA5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B6E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CB5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CBE'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CCB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D67'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D8D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001DA7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001977'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000197B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000197D'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001983'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001991'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A1'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019A7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B6'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019B8'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019C9'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019CB'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E4'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A01'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A0B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A3E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A4E'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B32'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C19'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEA'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E35'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E3E'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E4B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F19'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F33'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002043'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020CF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000020E3'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021BF'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000229B'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026C8'
+ name = 'Comparable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B72'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C98'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F37'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E5'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030EC'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003100'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000321B'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003238'
+ name = 'Comparable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000323B'
+ name = 'Comparable' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003478'
+ name = 'Comparator' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003672'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A5'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036A7'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003C04'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D29'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D3F'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000421C'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004253'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004328'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000444C'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004693'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000477E'
+ name = 'Map' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D5B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D67'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D73'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D83'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D99'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DD8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DE0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DEC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DF5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E07'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E10'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E1A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E27'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E36'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E4D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E52'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E59'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E63'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E72'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E76'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E85'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E8B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E91'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000E9D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EDF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EE5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EEB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EF2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EF9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F00'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F06'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F12'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F27'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F38'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F3F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F46'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F4D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F54'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F63'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F6E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F75'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F7C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F82'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F91'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F96'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000F9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FAE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000FB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000100F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001014'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000101A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001020'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000109A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010A8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010AE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010D4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010D9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010ED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:00000000000010FF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001103'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001107'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000110B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000111C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001122'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001128'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001130'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001151'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001156'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--5782bb9b:1267dccd657:-8000:000000000000115B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001323'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000132C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001331'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000133B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001344'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000134A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001353'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000135F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001369'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000137B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001380'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001388'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001394'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000139D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013AF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013C9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013F2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000013FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001408'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001415'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001419'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001421'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001426'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000142C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001432'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001438'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000143E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001444'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000146E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001474'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000147A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001481'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001488'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000148F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001495'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000149E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014AC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014C8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014DD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:00000000000014FC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001503'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001509'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001516'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000151B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001520'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001526'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:000000000000152C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001532'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001537'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014B5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014C8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014EC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000014FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001503'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000150B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001517'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001520'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001529'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001532'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000153B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001543'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000154C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001550'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001558'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000155F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001575'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000157A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001581'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000158B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001595'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001599'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015AA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015EC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015F2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000015FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001639'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000163F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001645'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000164C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001653'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000165A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001660'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001669'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001670'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000167F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001684'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000168B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001694'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000169B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016A9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016D8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016F3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:00000000000016FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001703'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001709'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000170F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001714'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000171F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015C8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000161D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001622'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000162A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000163A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001657'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000165B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001664'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001668'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000166E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001674'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000167A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001680'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001686'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001697'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000169E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016A8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016AF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016D9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016ED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000016FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001719'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001720'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001725'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000172A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000172F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001734'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001739'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001757'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001767'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000176D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001773'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000177D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001784'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000178F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001794'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000179B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017A8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017C8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017D0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017D8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000017F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001813'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001818'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000181F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001828'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000182F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001836'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000183D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001844'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001852'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001857'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000185D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001864'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000186B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001871'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001885'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000188A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000188F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001895'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000189B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018AC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018ED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000018FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001905'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000190A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001910'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001916'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000191D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001924'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001943'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000194A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001950'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001956'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000195F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001966'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001974'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001979'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001980'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001989'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001990'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001997'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000199E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019A5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019BD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019CB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019EE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000019FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A00'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A10'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A16'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A1F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A2A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A30'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A36'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A4A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A4E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A75'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A7A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A85'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A8C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001A93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AB9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ABF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AC5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AD5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001ADF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AE3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AF0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001AFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B06'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B0C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B12'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001B23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018F3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000018FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001905'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001916'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000191B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001923'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000192F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001940'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001944'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000194D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001951'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001957'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000195D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001963'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001969'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000196F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000197B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001982'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001986'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000198C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001993'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:000000000000199A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019BA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019C7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:00000000000019FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A00'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A1E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A3A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A44'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A4B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A5B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A61'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A66'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A6D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A74'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A82'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A90'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001A9E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AB8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001ABD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AC4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001ACD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AD4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001ADB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AE9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AF8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001AFD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B11'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B17'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B2A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B2F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B3A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B46'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B4B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B51'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B66'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B72'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B7F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001B9F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BA4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BAA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BB7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BBE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BDB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BE8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BEE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001BFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C0D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C12'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C19'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C29'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C30'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C37'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C3E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C4C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C51'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C5E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C65'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C6B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C83'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C8E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C94'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C9A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001C9F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CA8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CAE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CB8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CC1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CC7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CCD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CDD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001CE1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D01'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D06'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D0B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D11'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D18'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D1F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D33'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D38'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D3F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D45'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D4B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D51'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D60'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D69'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D6D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D79'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D80'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D87'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001D9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001DA1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-37da027a:126c96a8dbf:-8000:0000000000001DA9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000019FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A0D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A15'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A27'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A2C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A7D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A81'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A8E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A94'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001A9A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AA6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AB2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AC5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ACB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AF4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001AFB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B02'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B08'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B0F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B16'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B2A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B3C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B43'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B55'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B5B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B61'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B67'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B85'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001B9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BA1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BAB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BB2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BBD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BC8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BCD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BD4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BDB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BE9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001BFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C33'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C38'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C3F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C5D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C64'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C73'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C85'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C8C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001C92'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CA5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CAF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CB5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CBB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CC6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CCC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CD9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CE1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CEE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CF4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001CFB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D02'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D09'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D11'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D15'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D1D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D28'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D35'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D3C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D5B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D62'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D6E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D77'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D92'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001D99'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DA9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DB7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DBE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DCC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DD7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DDE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DE5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DEB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001DFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E08'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E0E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E14'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E1F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E28'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E38'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E47'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E4D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E67'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E6B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E92'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001E9D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EA4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EAB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EBF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EC4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ECB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001ED7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EDD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EEC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001EF9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F0C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F13'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F21'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F27'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F2D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F35'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001F49'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002194'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002198'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000219F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021AD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000021CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002202'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002206'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000220D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002214'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000221B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002226'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000222D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002234'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000223B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002269'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002272'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002278'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000227E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002284'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000022FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002300'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002305'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000230A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002310'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002317'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000231C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002323'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002328'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000232D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002333'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002338'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000233D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002342'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002347'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000234C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002351'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002357'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000235D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002362'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002367'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000236C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002373'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002379'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002380'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002387'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000238E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002394'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000239B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023AB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023BE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023DA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000023F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002401'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002408'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002420'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002424'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000242B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002432'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002439'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002444'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024BA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024C9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024EC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000024FE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002504'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000250B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002512'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000251B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002522'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002528'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002530'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000253B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002540'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002545'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000254C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002554'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000255F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000256B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002570'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002576'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002581'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025AE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025B5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025BC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025D8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000025E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002601'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002605'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000260C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002613'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000261A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002625'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002665'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000266D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002675'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000267B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002681'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002687'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000268D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002695'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000269D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000026FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002700'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002739'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000273D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002744'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000274B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002752'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000275D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002768'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000276F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002777'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002781'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002788'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002790'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002797'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000279F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000280F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002815'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000281B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002822'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000282A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002830'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002836'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000283C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002844'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000284A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002850'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002856'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000285E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002867'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000286D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002874'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000287F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002885'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000288C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002893'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000289B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028B5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028BD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000028C2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002910'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000291A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002920'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002926'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000292C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002935'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000293B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002942'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000294A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A0F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A15'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A73'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A7C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A84'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A90'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002A9D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AA9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AB0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ABA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AC4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002ACD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AD6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AE9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AF2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002AFA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B0C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B13'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B1B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B2A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B30'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B5F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B64'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B6A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B7A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002B90'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BD6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BDD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BE4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BEB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BF6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002BFD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C04'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C0B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C12'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C1A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C39'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C40'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C6F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C75'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C87'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C8D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C93'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002C9A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CCF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CDC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CE5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CEE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002CF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D00'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D14'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D1A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D2D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D3C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002D9E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DA5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DAC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DB9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DC7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DCE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DD4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DDB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DE9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002DFF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E0A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E11'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E18'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002E23'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F1C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F22'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F29'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F33'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F39'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F3F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F43'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F4E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F5C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F61'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F67'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F6D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F87'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F97'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002F9D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FA3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FAB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FB8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FC4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FD0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FDB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FE6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FF0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000002FFA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003006'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003011'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000301C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003027'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003030'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000303A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003044'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000304E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003056'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003060'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030EE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000030FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003102'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003109'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003112'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003118'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000311E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003125'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000312F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003135'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000313B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003143'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000314B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003153'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000315B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003163'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000316B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003173'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003179'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003181'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003187'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000318D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003193'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000319B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031AF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031BD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031C4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000031F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003206'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003215'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000321D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003225'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003229'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032CE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032E5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000032FB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003300'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003306'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003330'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003338'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000333F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003348'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003351'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003356'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000335B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003360'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003365'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000336B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003371'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003376'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000337B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003398'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000339E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033EB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033F3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000033FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003408'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003414'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003421'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000342E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003435'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000343C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003447'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003453'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000345D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003469'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003537'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000358E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003598'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000359E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035A4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035AA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035BC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035C9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035EE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000035FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003603'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003609'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000360E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003614'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000361A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003625'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000362D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003633'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003651'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000365A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003660'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003669'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000366E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003674'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003679'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000367D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003684'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003691'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000369D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000036F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003702'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003706'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000370F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003713'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003717'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000371E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003723'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003727'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000372C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003731'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003735'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003739'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003740'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003746'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000374A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003750'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003758'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000375F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003767'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000376F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003777'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000377D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003786'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000378E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003796'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000379D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037B6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037CB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000037D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003830'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003837'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000383D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003843'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000384A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003850'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003856'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000385D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003863'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003869'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000386F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003875'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000387C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003882'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038E5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038EE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000038F9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003901'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003909'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003910'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003917'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000391E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003925'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000392E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003968'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000396F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000397A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003982'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003988'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000398E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003994'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000399A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039A6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039AC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039B7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039D6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039DD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000039E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A57'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A5D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A64'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A6A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A70'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A76'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A7C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A82'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A8E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A94'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003A9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AA8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AAF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003AB6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003ABD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B44'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B5D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B68'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B6F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B77'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B7E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B85'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B8C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003B9C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BA5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BAD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BB4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BBB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BC3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BCA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BD8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BDF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BE7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003BEE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CEF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CF5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003CFD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D03'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D09'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D10'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D18'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D1F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D25'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D2B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D32'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D39'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D4F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D56'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D5D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D64'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D69'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D70'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D75'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D81'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D8E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D94'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003D9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DA9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DAF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DB6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DC6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DCC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DD3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DDC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DE4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DEB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DF9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003DFE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E05'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E0D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E13'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E1A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E20'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E28'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E2E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E34'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E3B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E41'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E48'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E4E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E58'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E60'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E66'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E6B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E71'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E78'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003E80'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F6E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F77'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F7D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F83'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F89'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F8F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F95'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003F9B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FA7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FAD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FB8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FBE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FC6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FCC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FD9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FE8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FEE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FF7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000003FFD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004003'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004009'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004010'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004017'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000401E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004025'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000402B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004032'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000403A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004041'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004047'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000404D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004054'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000405A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004061'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004068'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000406E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004076'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000407C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004084'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000408E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004098'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040A2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040B8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040C6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040CC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000040D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004166'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000416C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041A3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041AA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041BA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041E3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000041F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004200'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004207'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000420F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004216'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004223'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004229'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000422F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004235'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000423B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004241'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004249'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042C7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042CD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042D3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042DA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042E9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000042F8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004300'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004307'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000430E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004315'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000431C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004322'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000432E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004332'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004338'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000433E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004345'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000434B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004352'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000435F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004364'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004369'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000436F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043DC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043E6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043EE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043F4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000043FD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004403'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004409'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000440F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004416'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000441D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004425'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000442F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000449A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044A9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044B2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044BB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044C9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044DF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044E8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000044F6'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000451B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004521'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004527'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004545'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000454D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004556'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000455F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004565'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000456A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000458D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004596'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045A9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045C1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045CB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045D5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045E2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045EF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000045FF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004617'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000461D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004625'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000462E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004644'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000464A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004652'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000465B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004695'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000469B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046CA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046D1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046DB'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000046E7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004708'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004711'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004719'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000471F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004724'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004738'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004740'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000474A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004751'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004758'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000475F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004764'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000476D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000479A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A1'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047A7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047AD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047B9'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047BF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047CF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047D7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047DD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047F5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000047FF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004805'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000480F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004814'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004819'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000481E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004823'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004828'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000482D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004832'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004837'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000483E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004844'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000484B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004850'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004857'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000485D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004864'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000486A'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004872'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004878'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004880'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004886'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000488C'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004892'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004898'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048BE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048C5'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048CC'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D2'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048D8'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048DE'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048E4'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048EA'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F0'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048F7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:00000000000048FF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004907'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004911'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004919'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004920'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004927'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000492E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004936'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000493E'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004973'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004977'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000497D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004985'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000498B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004991'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000004997'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-84-18-102--98-18df7e4d:126ce6a35e2:-8000:000000000000499D'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001495'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001496'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001497'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001498'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001499'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149A'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149B'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CallAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149C'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149D'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149E'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000149F'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A0'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A1'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A2'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A3'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A4'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A5'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A6'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A7'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A8'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014A9'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AA'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ <UML:CreateAction xmi.id = '-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AB'
+ isSpecification = 'false' isAsynchronous = 'false'/>
+ </XMI.content>
+</XMI>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000B36"
+ name="MajorPackageDependency"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[448, 112, 185, 100]pathVisible=true;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="448"
+ y="112"
+ width="185"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig0.1"
+ x="448"
+ y="112"
+ width="136"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >com::android::ddmlib</text>
+ <group name="Fig0.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[448, 112, 135, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.0"
+ x="448"
+ y="112"
+ width="135"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig0.3"
+ x="448"
+ y="133"
+ width="185"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[434, 361, 194, 100]pathVisible=true;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="434"
+ y="361"
+ width="194"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig1.1"
+ x="434"
+ y="361"
+ width="145"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >com::android::tradefed</text>
+ <group name="Fig1.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[434, 361, 144, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.0"
+ x="434"
+ y="361"
+ width="144"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig1.3"
+ x="434"
+ y="382"
+ width="194"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001160"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig2.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001160"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig2.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="568"
+ y="361" />
+ <lineto x="568"
+ y="212" />
+ </path>
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[184, 256, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DBF"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.0"
+ x="184"
+ y="256"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig3.1"
+ x="184"
+ y="256"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >junit</text>
+ <group name="Fig3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[184, 256, 90, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DBF"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.2.0"
+ x="184"
+ y="256"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig3.3"
+ x="184"
+ y="277"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001399"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig3"
+ sourceFigNode="Fig1"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001399"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="434"
+ y="361" />
+ <lineto x="324"
+ y="356" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.sequence2.diagram.UMLSequenceDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CDE"
+ name="CommandRunSequence"
+>
+ <group name="Fig0"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[24, 24, 150, 1187]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="24"
+ y="24"
+ width="150"
+ height="1187"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig0.1"
+ x="24"
+ y="24"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[24, 73, 150, 1137]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.0"
+ x="24"
+ y="73"
+ width="150"
+ height="1137"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="99"
+ y="73" />
+ <lineto x="99"
+ y="1210" />
+ </path>
+ <group name="Fig0.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[89, 73, 20, 1137]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.2.0"
+ x="89"
+ y="73"
+ width="20"
+ height="1137"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig0.3"
+ description="org.argouml.sequence2.diagram.FigHead[24, 24, 150, 50]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="24"
+ y="24"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.3.1"
+ x="24"
+ y="24"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >/user</text>
+ <group name="Fig0.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[24, 24, 150, 0]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000143D"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.2.0"
+ x="24"
+ y="24"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig1"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[240, 24, 150, 1187]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="240"
+ y="24"
+ width="150"
+ height="1187"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig1.1"
+ x="240"
+ y="24"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[240, 73, 150, 1137]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.0"
+ x="240"
+ y="73"
+ width="150"
+ height="1137"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="315"
+ y="73" />
+ <lineto x="315"
+ y="1210" />
+ </path>
+ <group name="Fig1.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[305, 73, 20, 1137]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.2.0"
+ x="305"
+ y="73"
+ width="20"
+ height="1137"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig1.3"
+ description="org.argouml.sequence2.diagram.FigHead[240, 24, 150, 50]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="240"
+ y="24"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.3.1"
+ x="240"
+ y="24"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >/command:Command</text>
+ <group name="Fig1.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[240, 24, 150, 0]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001440"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.2.0"
+ x="240"
+ y="24"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig2"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144A"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig2.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144A"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig2.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="544" />
+ <lineto x="109"
+ y="544" />
+ </path>
+ </group>
+ <group name="Fig3"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[440, 24, 150, 1187]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.0"
+ x="440"
+ y="24"
+ width="150"
+ height="1187"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig3.1"
+ x="440"
+ y="24"
+ width="150"
+ height="79"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig3.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[440, 152, 150, 1058]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.2.0"
+ x="440"
+ y="152"
+ width="150"
+ height="1058"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig3.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="515"
+ y="152" />
+ <lineto x="515"
+ y="520" />
+ </path>
+ <group name="Fig3.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[505, 152, 20, 388]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.2.2.0"
+ x="505"
+ y="152"
+ width="20"
+ height="368"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <group name="Fig3.2.2.1"
+ description="org.argouml.sequence2.diagram.FigDestroy[505, 520, 20, 20]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <path name="Fig3.2.2.1.0"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="505"
+ y="520" />
+ <lineto x="525"
+ y="540" />
+ </path>
+ <path name="Fig3.2.2.1.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="505"
+ y="540" />
+ <lineto x="525"
+ y="520" />
+ </path>
+ </group>
+ </group>
+ </group>
+ <group name="Fig3.3"
+ description="org.argouml.sequence2.diagram.FigHead[440, 103, 150, 50]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.3.0"
+ x="440"
+ y="103"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig3.3.1"
+ x="440"
+ y="103"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >/config:Configuration</text>
+ <group name="Fig3.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[440, 103, 150, 0]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000144B"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.3.2.0"
+ x="440"
+ y="103"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001452"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001452"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="128" />
+ <lineto x="440"
+ y="128" />
+ </path>
+ </group>
+ <group name="Fig5"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[648, 24, 200, 1187]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.0"
+ x="648"
+ y="24"
+ width="200"
+ height="1187"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig5.1"
+ x="648"
+ y="24"
+ width="200"
+ height="151"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig5.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[648, 224, 200, 986]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.2.0"
+ x="648"
+ y="224"
+ width="200"
+ height="986"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="748"
+ y="224" />
+ <lineto x="748"
+ y="1210" />
+ </path>
+ <group name="Fig5.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[738, 224, 20, 986]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.2.2.0"
+ x="738"
+ y="224"
+ width="20"
+ height="986"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig5.3"
+ description="org.argouml.sequence2.diagram.FigHead[648, 175, 200, 50]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.3.0"
+ x="648"
+ y="175"
+ width="200"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig5.3.1"
+ x="648"
+ y="175"
+ width="200"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >/DeviceManager:DeviceManager</text>
+ <group name="Fig5.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[648, 175, 200, 0]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001453"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.3.2.0"
+ x="648"
+ y="175"
+ width="200"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig6"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145C"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig5.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig5"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000145C"
+ angle="-92.0"
+ offset="23" />
+ </private>
+ <path name="Fig6.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="738"
+ y="296" />
+ <lineto x="325"
+ y="296" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[832, 24, 156, 1187]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.0"
+ x="832"
+ y="24"
+ width="156"
+ height="1187"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig7.1"
+ x="832"
+ y="24"
+ width="156"
+ height="287"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig7.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[832, 360, 156, 850]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.2.0"
+ x="832"
+ y="360"
+ width="156"
+ height="850"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig7.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="910"
+ y="360" />
+ <lineto x="910"
+ y="488" />
+ </path>
+ <group name="Fig7.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[900, 360, 20, 148]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.2.2.0"
+ x="900"
+ y="360"
+ width="20"
+ height="128"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <group name="Fig7.2.2.1"
+ description="org.argouml.sequence2.diagram.FigDestroy[900, 488, 20, 20]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <path name="Fig7.2.2.1.0"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="900"
+ y="488" />
+ <lineto x="920"
+ y="508" />
+ </path>
+ <path name="Fig7.2.2.1.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="900"
+ y="508" />
+ <lineto x="920"
+ y="488" />
+ </path>
+ </group>
+ </group>
+ </group>
+ <group name="Fig7.3"
+ description="org.argouml.sequence2.diagram.FigHead[832, 311, 156, 50]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.3.0"
+ x="832"
+ y="311"
+ width="156"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig7.3.1"
+ x="832"
+ y="311"
+ width="156"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >/RunInstance</text>
+ <group name="Fig7.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[832, 311, 156, 0]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000146E"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.3.2.0"
+ x="832"
+ y="311"
+ width="156"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig8"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001475"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig7.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig7"
+
+ <argouml:pathitem figname="Fig8.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001475"
+ angle="289.0"
+ offset="11" />
+ </private>
+ <path name="Fig8.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="336" />
+ <lineto x="832"
+ y="336" />
+ </path>
+ </group>
+ <group name="Fig9"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig7.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig7"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig9.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001479"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig9.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="900"
+ y="448" />
+ <lineto x="325"
+ y="448" />
+ </path>
+ </group>
+ <group name="Fig10"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147E"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig7.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig7"
+
+ <argouml:pathitem figname="Fig10.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000147E"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig10.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="488" />
+ <lineto x="900"
+ y="488" />
+ </path>
+ </group>
+ <group name="Fig11"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001480"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig11.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001480"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig11.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="520" />
+ <lineto x="505"
+ y="520" />
+ </path>
+ </group>
+ <group name="Fig12"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001482"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig5.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig12.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001482"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig12.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="200" />
+ <lineto x="648"
+ y="200" />
+ </path>
+ </group>
+ <rectangle name="Fig13"
+ x="1000"
+ y="432"
+ width="64"
+ height="32"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE6"
+ name="PackageDependencies"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[560, 512, 136, 88]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="560"
+ y="512"
+ width="136"
+ height="88"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig0.1"
+ x="560"
+ y="512"
+ width="87"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >command</text>
+ <group name="Fig0.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[560, 512, 86, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.0"
+ x="560"
+ y="512"
+ width="86"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig0.3"
+ x="560"
+ y="533"
+ width="136"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[320, 384, 136, 96]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="320"
+ y="384"
+ width="136"
+ height="96"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig1.1"
+ x="320"
+ y="384"
+ width="87"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >invoker</text>
+ <group name="Fig1.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[320, 384, 86, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.0"
+ x="320"
+ y="384"
+ width="86"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig1.3"
+ x="320"
+ y="405"
+ width="136"
+ height="75"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[120, 272, 152, 88]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="120"
+ y="272"
+ width="152"
+ height="88"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig2.1"
+ x="120"
+ y="272"
+ width="103"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >targetsetup</text>
+ <group name="Fig2.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[120, 272, 102, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.2.0"
+ x="120"
+ y="272"
+ width="102"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.3"
+ x="120"
+ y="293"
+ width="152"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001164"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig1"
+ sourceFigNode="Fig0"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig3.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001164"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig3.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="560"
+ y="512" />
+ <lineto x="456"
+ y="480" />
+ </path>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001165"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig2"
+ sourceFigNode="Fig1"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000001165"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="320"
+ y="384" />
+ <lineto x="272"
+ y="360" />
+ </path>
+ </group>
+ <group name="Fig5"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[312, 184, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.0"
+ x="312"
+ y="184"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig5.1"
+ x="312"
+ y="184"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >device</text>
+ <group name="Fig5.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[312, 184, 90, 1]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.2.0"
+ x="312"
+ y="184"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig5.3"
+ x="312"
+ y="205"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig6"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138E"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2.0"
+ destPortFig="Fig5"
+ sourceFigNode="Fig2"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000138E"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig6.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="272"
+ y="292" />
+ <lineto x="312"
+ y="284" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[704, 280, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.0"
+ x="704"
+ y="280"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig7.1"
+ x="704"
+ y="280"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >result</text>
+ <group name="Fig7.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[704, 280, 90, 1]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.2.0"
+ x="704"
+ y="280"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig7.3"
+ x="704"
+ y="301"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig8"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[88, 488, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001393"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig8.0"
+ x="88"
+ y="488"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig8.1"
+ x="88"
+ y="488"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >scheduler</text>
+ <group name="Fig8.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[88, 488, 90, 1]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001393"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig8.2.0"
+ x="88"
+ y="488"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig8.3"
+ x="88"
+ y="509"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig9"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001394"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig8.0"
+ destPortFig="Fig1"
+ sourceFigNode="Fig8"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig9.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001394"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig9.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="228"
+ y="508" />
+ <lineto x="320"
+ y="480" />
+ </path>
+ </group>
+ <group name="Fig10"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[320, 536, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig10.0"
+ x="320"
+ y="536"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig10.1"
+ x="320"
+ y="536"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >config</text>
+ <group name="Fig10.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[320, 536, 90, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig10.2.0"
+ x="320"
+ y="536"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig10.3"
+ x="320"
+ y="557"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig11"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[488, 280, 140, 100]pathVisible=false;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.0"
+ x="488"
+ y="280"
+ width="140"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig11.1"
+ x="488"
+ y="280"
+ width="91"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testtype</text>
+ <group name="Fig11.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[488, 280, 90, 1]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.2.0"
+ x="488"
+ y="280"
+ width="90"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig11.3"
+ x="488"
+ y="301"
+ width="140"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig12"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001724"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig11"
+ sourceFigNode="Fig1"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig12.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001724"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig12.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="456"
+ y="404" />
+ <lineto x="488"
+ y="380" />
+ </path>
+ </group>
+ <group name="Fig13"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001725"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig5"
+ sourceFigNode="Fig11"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig13.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001725"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig13.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="488"
+ y="284" />
+ <lineto x="452"
+ y="284" />
+ </path>
+ </group>
+ <group name="Fig14"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001726"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig7"
+ sourceFigNode="Fig11"
+ destFigNode="Fig7"
+
+ <argouml:pathitem figname="Fig14.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001726"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig14.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="628"
+ y="328" />
+ <lineto x="704"
+ y="328" />
+ </path>
+ </group>
+ <group name="Fig15"
+ description="org.argouml.uml.diagram.static_structure.ui.FigPackage[296, 24, 185, 100]pathVisible=true;stereotypeView=0;stereotypeVisible=true;visibilityVisible=false"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig15.0"
+ x="296"
+ y="24"
+ width="185"
+ height="100"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <text name="Fig15.1"
+ x="296"
+ y="24"
+ width="136"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >com::android::ddmlib</text>
+ <group name="Fig15.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[296, 24, 135, 1]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D93"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig15.2.0"
+ x="296"
+ y="24"
+ width="135"
+ height="1"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig15.3"
+ x="296"
+ y="45"
+ width="185"
+ height="79"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ </group>
+ <group name="Fig16"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001727"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig5.0"
+ destPortFig="Fig15"
+ sourceFigNode="Fig5"
+ destFigNode="Fig15"
+
+ <argouml:pathitem figname="Fig16.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001727"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig16.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="368"
+ y="184" />
+ <lineto x="368"
+ y="124" />
+ </path>
+ </group>
+ <group name="Fig17"
+ description="org.argouml.uml.diagram.ui.FigUsage"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457B"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig10"
+ sourceFigNode="Fig1"
+ destFigNode="Fig10"
+
+ <argouml:pathitem figname="Fig17.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457B"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig17.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="376"
+ y="480" />
+ <lineto x="376"
+ y="536" />
+ </path>
+ </group>
+ <group name="Fig18"
+ description="org.argouml.uml.diagram.ui.FigUsage"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457C"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig10"
+ sourceFigNode="Fig0"
+ destFigNode="Fig10"
+
+ <argouml:pathitem figname="Fig18.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457C"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig18.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="560"
+ y="557" />
+ <lineto x="460"
+ y="557" />
+ </path>
+ </group>
+ <group name="Fig19"
+ description="org.argouml.uml.diagram.ui.FigUsage"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457D"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig8.0"
+ destPortFig="Fig10"
+ sourceFigNode="Fig8"
+ destFigNode="Fig10"
+
+ <argouml:pathitem figname="Fig19.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457D"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig19.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="228"
+ y="568" />
+ <lineto x="320"
+ y="568" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE7"
+ name="TargetSetupClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[320, 32, 218, 82]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="320"
+ y="32"
+ width="218"
+ height="82"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[320, 32, 218, 17]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="320"
+ y="32"
+ width="218"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="321"
+ y="33"
+ width="216"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="320"
+ y="49"
+ width="218"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >BuildInfo</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[320, 71, 218, 42]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CEF"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="320"
+ y="71"
+ width="218"
+ height="42"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="320"
+ y="71" />
+ <lineto x="537"
+ y="71" />
+ </path>
+ <text name="Fig0.3.2"
+ x="320"
+ y="72"
+ width="97"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getBuildId() : int</text>
+ <text name="Fig0.3.3"
+ x="320"
+ y="87"
+ width="218"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getBuildFilePath(alias : String) : String</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="320"
+ y="32"
+ width="218"
+ height="82"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[8, 40, 252, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="8"
+ y="40"
+ width="252"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[8, 40, 252, 17]"
+ href="-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="8"
+ y="40"
+ width="252"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.1.1"
+ x="9"
+ y="41"
+ width="250"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig1.2"
+ x="8"
+ y="57"
+ width="252"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >BuildProvider</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[8, 79, 252, 27]"
+ href="-84-18-102--98--780eea8a:1269b55171c:-8000:0000000000001307"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="8"
+ y="79"
+ width="252"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="8"
+ y="79" />
+ <lineto x="259"
+ y="79" />
+ </path>
+ <text name="Fig1.3.2"
+ x="8"
+ y="80"
+ width="121"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getBuild() : BuildInfo</text>
+ </group>
+ <rectangle name="Fig1.4"
+ x="8"
+ y="40"
+ width="252"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[608, 8, 276, 71]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="608"
+ y="8"
+ width="276"
+ height="71"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[608, 8, 276, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.1.0"
+ x="608"
+ y="8"
+ width="276"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.2"
+ x="608"
+ y="8"
+ width="276"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TargetSetupError</text>
+ <group name="Fig2.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[608, 51, 276, 27]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="608"
+ y="51"
+ width="276"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="608"
+ y="51" />
+ <lineto x="883"
+ y="51" />
+ </path>
+ <text name="Fig2.3.2"
+ x="608"
+ y="52"
+ width="276"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> TargetSetupError(reason : String)</text>
+ </group>
+ <group name="Fig2.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[608, 30, 276, 21]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CE8"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.4.0"
+ x="608"
+ y="30"
+ width="276"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="608"
+ y="30" />
+ <lineto x="883"
+ y="30" />
+ </path>
+ </group>
+ <rectangle name="Fig2.5"
+ x="608"
+ y="8"
+ width="276"
+ height="71"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AD"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig3.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013AD"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig3.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="260"
+ y="82" />
+ <lineto x="320"
+ y="82" />
+ </path>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[280, 176, 436, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.0"
+ x="280"
+ y="176"
+ width="436"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig4.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[280, 176, 436, 17]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.1.0"
+ x="280"
+ y="176"
+ width="436"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig4.1.1"
+ x="281"
+ y="177"
+ width="434"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig4.2"
+ x="280"
+ y="193"
+ width="436"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TargetPreparor</text>
+ <group name="Fig4.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[280, 215, 436, 27]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000CFF"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.3.0"
+ x="280"
+ y="215"
+ width="436"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig4.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="280"
+ y="215" />
+ <lineto x="715"
+ y="215" />
+ </path>
+ <text name="Fig4.3.2"
+ x="280"
+ y="216"
+ width="310"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >setUp(device : TestDevice,buildInfo : BuildInfo) : void</text>
+ </group>
+ <rectangle name="Fig4.4"
+ x="280"
+ y="176"
+ width="436"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig5"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[64, 184, 121, 71]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.0"
+ x="64"
+ y="184"
+ width="121"
+ height="71"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig5.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[64, 184, 121, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.1.0"
+ x="64"
+ y="184"
+ width="121"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig5.2"
+ x="64"
+ y="184"
+ width="121"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >StubBuildProvider</text>
+ <group name="Fig5.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[64, 227, 121, 27]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.3.0"
+ x="64"
+ y="227"
+ width="121"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="64"
+ y="227" />
+ <lineto x="184"
+ y="227" />
+ </path>
+ <text name="Fig5.3.2"
+ x="64"
+ y="228"
+ width="121"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getBuild() : BuildInfo</text>
+ </group>
+ <group name="Fig5.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[64, 206, 121, 21]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001537"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.4.0"
+ x="64"
+ y="206"
+ width="121"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="64"
+ y="206" />
+ <lineto x="184"
+ y="206" />
+ </path>
+ </group>
+ <rectangle name="Fig5.5"
+ x="64"
+ y="184"
+ width="121"
+ height="71"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig6"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BD"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig5"
+ destPortFig="Fig1"
+ sourceFigNode="Fig5"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-6ce1d1d3:126c4491375:-8000:00000000000015BD"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig6.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="134"
+ y="184" />
+ <lineto x="134"
+ y="107" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[371, 284, 310, 71]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.0"
+ x="371"
+ y="284"
+ width="310"
+ height="71"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig7.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[371, 284, 310, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.1.0"
+ x="371"
+ y="284"
+ width="310"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig7.2"
+ x="371"
+ y="284"
+ width="310"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >StubTargetPreparor</text>
+ <group name="Fig7.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[371, 327, 310, 27]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.3.0"
+ x="371"
+ y="327"
+ width="310"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig7.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="371"
+ y="327" />
+ <lineto x="680"
+ y="327" />
+ </path>
+ <text name="Fig7.3.2"
+ x="371"
+ y="328"
+ width="310"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >setUp(device : TestDevice,buildInfo : BuildInfo) : void</text>
+ </group>
+ <group name="Fig7.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[371, 306, 310, 21]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D03"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.4.0"
+ x="371"
+ y="306"
+ width="310"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig7.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="371"
+ y="306" />
+ <lineto x="680"
+ y="306" />
+ </path>
+ </group>
+ <rectangle name="Fig7.5"
+ x="371"
+ y="284"
+ width="310"
+ height="71"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig8"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA5"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig7"
+ destPortFig="Fig4"
+ sourceFigNode="Fig7"
+ destFigNode="Fig4"
+
+ <argouml:pathitem figname="Fig8.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DA5"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig8.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="479"
+ y="284" />
+ <lineto x="479"
+ y="243" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001387"
+ name="DeviceClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[408, 48, 281, 82]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="408"
+ y="48"
+ width="281"
+ height="82"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[408, 48, 281, 17]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="408"
+ y="48"
+ width="281"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="409"
+ y="49"
+ width="279"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="408"
+ y="65"
+ width="281"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TestDevice</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[408, 87, 281, 42]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A2"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="408"
+ y="87"
+ width="281"
+ height="42"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="408"
+ y="87" />
+ <lineto x="688"
+ y="87" />
+ </path>
+ <text name="Fig0.3.2"
+ x="408"
+ y="88"
+ width="281"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >executeShellCommand(command : String) : void</text>
+ <text name="Fig0.3.3"
+ x="408"
+ y="103"
+ width="126"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getIDevice() : IDevice</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="408"
+ y="48"
+ width="281"
+ height="82"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[56, 24, 276, 120]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="56"
+ y="24"
+ width="276"
+ height="120"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[56, 24, 276, 17]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="56"
+ y="24"
+ width="276"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.1.1"
+ x="57"
+ y="25"
+ width="274"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig1.2"
+ x="56"
+ y="41"
+ width="276"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >DeviceManager</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[56, 63, 276, 80]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013A7"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="56"
+ y="63"
+ width="276"
+ height="80"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="56"
+ y="63" />
+ <lineto x="331"
+ y="63" />
+ </path>
+ <text name="Fig1.3.2"
+ x="56"
+ y="64"
+ width="171"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >allocateDevice() : TestDevice</text>
+ <text name="Fig1.3.3"
+ x="56"
+ y="79"
+ width="223"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >freeDevice(device : TestDevice) : void</text>
+ <text name="Fig1.3.4"
+ x="56"
+ y="94"
+ width="276"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >registerListener(listener : DeviceListener) : void</text>
+ <text name="Fig1.3.5"
+ x="56"
+ y="109"
+ width="275"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >removeListener(listener : DeviceListener) : void</text>
+ </group>
+ <rectangle name="Fig1.4"
+ x="56"
+ y="24"
+ width="276"
+ height="120"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[736, 48, 183, 26]pathVisible=true;stereotypeView=0;operationsVisible=false;attributesVisible=false;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="736"
+ y="48"
+ width="183"
+ height="26"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[736, 48, 183, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.1.0"
+ x="736"
+ y="48"
+ width="183"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.2"
+ x="736"
+ y="48"
+ width="183"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >com::android::ddmlib::IDevice</text>
+ <group name="Fig2.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[8, 0, 0, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="736"
+ y="70"
+ width="467"
+ height="417"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig2.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="736"
+ y="70" />
+ <lineto x="1202"
+ y="70" />
+ </path>
+ </group>
+ <group name="Fig2.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[8, 0, 0, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D94"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.4.0"
+ x="736"
+ y="70"
+ width="460"
+ height="144"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig2.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="736"
+ y="70" />
+ <lineto x="1195"
+ y="70" />
+ </path>
+ </group>
+ <rectangle name="Fig2.5"
+ x="736"
+ y="48"
+ width="183"
+ height="26"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.ui.FigAssociation"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013EF"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig3.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013EF"
+ angle="270.0"
+ offset="25" />
+ <argouml:pathitem figname="Fig3.2"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F0"
+ angle="313.0"
+ offset="23" />
+ <argouml:pathitem figname="Fig3.3"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F0"
+ angle="45.0"
+ offset="5" />
+ <argouml:pathitem figname="Fig3.4"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F3"
+ angle="228.0"
+ offset="13" />
+ <argouml:pathitem figname="Fig3.5"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:00000000000013F3"
+ angle="135.0"
+ offset="5" />
+ </private>
+ <path name="Fig3.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="332"
+ y="80" />
+ <lineto x="408"
+ y="80" />
+ </path>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.ui.FigAssociation"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001408"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig0"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001408"
+ angle="270.0"
+ offset="31" />
+ <argouml:pathitem figname="Fig4.2"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001409"
+ angle="298.99999999999994"
+ offset="18" />
+ <argouml:pathitem figname="Fig4.3"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001409"
+ angle="45.0"
+ offset="5" />
+ <argouml:pathitem figname="Fig4.4"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000140C"
+ angle="225.0"
+ offset="5" />
+ <argouml:pathitem figname="Fig4.5"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:000000000000140C"
+ angle="135.0"
+ offset="5" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="689"
+ y="74" />
+ <lineto x="736"
+ y="74" />
+ </path>
+ </group>
+ <group name="Fig5"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[120, 208, 139, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.0"
+ x="120"
+ y="208"
+ width="139"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig5.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[120, 208, 139, 17]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.1.0"
+ x="120"
+ y="208"
+ width="139"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig5.1.1"
+ x="121"
+ y="209"
+ width="137"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig5.2"
+ x="120"
+ y="225"
+ width="139"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >DeviceListener</text>
+ <group name="Fig5.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[120, 247, 139, 27]"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001412"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.3.0"
+ x="120"
+ y="247"
+ width="139"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="120"
+ y="247" />
+ <lineto x="258"
+ y="247" />
+ </path>
+ <text name="Fig5.3.2"
+ x="120"
+ y="248"
+ width="139"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >deviceAvailable() : void</text>
+ </group>
+ <rectangle name="Fig5.4"
+ x="120"
+ y="208"
+ width="139"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig6"
+ description="org.argouml.uml.diagram.ui.FigAssociation"
+ href="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001423"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig5.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001423"
+ angle="270.0"
+ offset="25" />
+ <argouml:pathitem figname="Fig6.2"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001424"
+ angle="315.0"
+ offset="5" />
+ <argouml:pathitem figname="Fig6.3"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001424"
+ angle="45.0"
+ offset="5" />
+ <argouml:pathitem figname="Fig6.4"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigMultiplicity"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001427"
+ angle="205.0"
+ offset="27" />
+ <argouml:pathitem figname="Fig6.5"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigAssociationEndAnnotation"
+ ownerhref="-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001427"
+ angle="135.0"
+ offset="5" />
+ </private>
+ <path name="Fig6.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="176"
+ y="144" />
+ <lineto x="176"
+ y="208" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[344, 208, 330, 65]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=false;"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.0"
+ x="344"
+ y="208"
+ width="330"
+ height="65"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig7.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[344, 208, 330, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.1.0"
+ x="344"
+ y="208"
+ width="330"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig7.2"
+ x="344"
+ y="208"
+ width="330"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >DeviceNotAvailableException</text>
+ <group name="Fig7.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[344, 230, 330, 42]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.3.0"
+ x="344"
+ y="230"
+ width="330"
+ height="42"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig7.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="344"
+ y="230" />
+ <lineto x="673"
+ y="230" />
+ </path>
+ <text name="Fig7.3.2"
+ x="344"
+ y="231"
+ width="260"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> DeviceNotAvailableException()</text>
+ <text name="Fig7.3.3"
+ x="344"
+ y="246"
+ width="328"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> DeviceNotAvailableException(msg : String)</text>
+ </group>
+ <group name="Fig7.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[-56, 8, 0, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001597"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig7.4.0"
+ x="-46"
+ y="40"
+ width="328"
+ height="24"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig7.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="-46"
+ y="40" />
+ <lineto x="281"
+ y="40" />
+ </path>
+ </group>
+ <rectangle name="Fig7.5"
+ x="344"
+ y="208"
+ width="330"
+ height="65"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+</pgml>
+<pgml description="org.argouml.sequence2.diagram.UMLSequenceDiagram|-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001482"
+ name="RunInstance_doRun"
+>
+ <group name="Fig0"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[224, 34, 150, 1530]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="224"
+ y="34"
+ width="150"
+ height="1530"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig0.1"
+ x="224"
+ y="34"
+ width="150"
+ height="61"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[224, 144, 150, 1419]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.0"
+ x="224"
+ y="144"
+ width="150"
+ height="1419"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="299"
+ y="144" />
+ <lineto x="299"
+ y="272" />
+ </path>
+ <group name="Fig0.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[289, 144, 20, 148]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.2.2.0"
+ x="289"
+ y="144"
+ width="20"
+ height="128"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <group name="Fig0.2.2.1"
+ description="org.argouml.sequence2.diagram.FigDestroy[289, 272, 20, 20]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <path name="Fig0.2.2.1.0"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="289"
+ y="272" />
+ <lineto x="309"
+ y="292" />
+ </path>
+ <path name="Fig0.2.2.1.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="289"
+ y="292" />
+ <lineto x="309"
+ y="272" />
+ </path>
+ </group>
+ </group>
+ </group>
+ <group name="Fig0.3"
+ description="org.argouml.sequence2.diagram.FigHead[224, 95, 150, 50]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="224"
+ y="95"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.3.1"
+ x="224"
+ y="95"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >:BuildProvider</text>
+ <group name="Fig0.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[224, 95, 150, 0]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001489"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.2.0"
+ x="224"
+ y="95"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig1"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[240, 34, 150, 1530]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="240"
+ y="34"
+ width="150"
+ height="1530"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig1.1"
+ x="240"
+ y="34"
+ width="150"
+ height="277"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[240, 360, 150, 1203]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.0"
+ x="240"
+ y="360"
+ width="150"
+ height="1203"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="315"
+ y="360" />
+ <lineto x="315"
+ y="456" />
+ </path>
+ <group name="Fig1.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[305, 360, 20, 116]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.2.2.0"
+ x="305"
+ y="360"
+ width="20"
+ height="96"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <group name="Fig1.2.2.1"
+ description="org.argouml.sequence2.diagram.FigDestroy[305, 456, 20, 20]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <path name="Fig1.2.2.1.0"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="456" />
+ <lineto x="325"
+ y="476" />
+ </path>
+ <path name="Fig1.2.2.1.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="476" />
+ <lineto x="325"
+ y="456" />
+ </path>
+ </group>
+ </group>
+ </group>
+ <group name="Fig1.3"
+ description="org.argouml.sequence2.diagram.FigHead[240, 311, 150, 50]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="240"
+ y="311"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.3.1"
+ x="240"
+ y="311"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >:TargetPreparor</text>
+ <group name="Fig1.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[240, 311, 150, 0]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148C"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.2.0"
+ x="240"
+ y="311"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig2"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[456, 34, 150, 1529]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="456"
+ y="34"
+ width="150"
+ height="1529"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig2.1"
+ x="456"
+ y="34"
+ width="150"
+ height="469"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[456, 552, 150, 1010]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.2.0"
+ x="456"
+ y="552"
+ width="150"
+ height="1010"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="531"
+ y="552" />
+ <lineto x="531"
+ y="1562" />
+ </path>
+ <group name="Fig2.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[521, 552, 20, 1010]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.2.2.0"
+ x="521"
+ y="552"
+ width="20"
+ height="1010"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig2.3"
+ description="org.argouml.sequence2.diagram.FigHead[456, 503, 150, 50]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="456"
+ y="503"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig2.3.1"
+ x="456"
+ y="503"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >:TestListener</text>
+ <group name="Fig2.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[456, 503, 150, 0]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:0000000000001492"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.2.0"
+ x="456"
+ y="503"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig3"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[29, 34, 150, 1530]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.0"
+ x="29"
+ y="34"
+ width="150"
+ height="1530"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig3.1"
+ x="29"
+ y="34"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig3.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[29, 83, 150, 1480]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.2.0"
+ x="29"
+ y="83"
+ width="150"
+ height="1480"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig3.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="104"
+ y="83" />
+ <lineto x="104"
+ y="1563" />
+ </path>
+ <group name="Fig3.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[94, 83, 20, 1480]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.2.2.0"
+ x="94"
+ y="83"
+ width="20"
+ height="1480"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig3.3"
+ description="org.argouml.sequence2.diagram.FigHead[29, 34, 150, 50]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.3.0"
+ x="29"
+ y="34"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig3.3.1"
+ x="29"
+ y="34"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ></text>
+ <group name="Fig3.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[29, 34, 150, 0]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014AC"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.3.2.0"
+ x="29"
+ y="34"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B4"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B4"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="120" />
+ <lineto x="224"
+ y="120" />
+ </path>
+ </group>
+ <group name="Fig5"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B8"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig0"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig5.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014B8"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig5.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="289"
+ y="232" />
+ <lineto x="114"
+ y="232" />
+ </path>
+ </group>
+ <group name="Fig6"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BD"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014BD"
+ angle="275.99999999999994"
+ offset="9" />
+ </private>
+ <path name="Fig6.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="336" />
+ <lineto x="240"
+ y="336" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig7.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C1"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig7.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="416" />
+ <lineto x="114"
+ y="416" />
+ </path>
+ </group>
+ <group name="Fig8"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C3"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig8.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C3"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig8.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="272" />
+ <lineto x="289"
+ y="272" />
+ </path>
+ </group>
+ <group name="Fig9"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C5"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig9.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014C5"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig9.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="456" />
+ <lineto x="305"
+ y="456" />
+ </path>
+ </group>
+ <group name="Fig10"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CF"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig10.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014CF"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig10.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="528" />
+ <lineto x="456"
+ y="528" />
+ </path>
+ </group>
+ <group name="Fig11"
+ description="org.argouml.sequence2.diagram.FigClassifierRole[240, 34, 150, 1529]pathVisible=false;stereotypeView=0;"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.0"
+ x="240"
+ y="34"
+ width="150"
+ height="1529"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <rectangle name="Fig11.1"
+ x="240"
+ y="34"
+ width="150"
+ height="533"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig11.2"
+ description="org.argouml.sequence2.diagram.FigLifeLine[240, 616, 150, 946]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.2.0"
+ x="240"
+ y="616"
+ width="150"
+ height="946"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig11.2.1"
+ description="org.tigris.gef.presentation.FigLine"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="315"
+ y="616" />
+ <lineto x="315"
+ y="1562" />
+ </path>
+ <group name="Fig11.2.2"
+ description="org.argouml.sequence2.diagram.FigActivation[305, 616, 20, 946]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.2.2.0"
+ x="305"
+ y="616"
+ width="20"
+ height="946"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ <group name="Fig11.3"
+ description="org.argouml.sequence2.diagram.FigHead[240, 567, 150, 50]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.3.0"
+ x="240"
+ y="567"
+ width="150"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig11.3.1"
+ x="240"
+ y="567"
+ width="150"
+ height="25"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >:Test</text>
+ <group name="Fig11.3.2"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[240, 567, 150, 0]"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:000000000000148F"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig11.3.2.0"
+ x="240"
+ y="567"
+ width="150"
+ height="0"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ </group>
+ </group>
+ </group>
+ <group name="Fig12"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E0"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig12.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E0"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig12.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="592" />
+ <lineto x="240"
+ y="592" />
+ </path>
+ </group>
+ <group name="Fig13"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig13.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E2"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig13.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="114"
+ y="672" />
+ <lineto x="305"
+ y="672" />
+ </path>
+ </group>
+ <group name="Fig14"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E4"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig11"
+ destFigNode="Fig3"
+
+ <argouml:pathitem figname="Fig14.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E4"
+ angle="-116.0"
+ offset="4" />
+ </private>
+ <path name="Fig14.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="1030" />
+ <lineto x="114"
+ y="1030" />
+ </path>
+ </group>
+ <group name="Fig15"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E6"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig11"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig15.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E6"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig15.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="712" />
+ <lineto x="521"
+ y="712" />
+ </path>
+ </group>
+ <group name="Fig16"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E8"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig2"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig16.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014E8"
+ angle="-135.0"
+ offset="5" />
+ </private>
+ <path name="Fig16.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="521"
+ y="736" />
+ <lineto x="325"
+ y="736" />
+ </path>
+ </group>
+ <group name="Fig17"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EA"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig11"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig17.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EA"
+ angle="258.0"
+ offset="5" />
+ </private>
+ <path name="Fig17.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="784" />
+ <lineto x="521"
+ y="784" />
+ </path>
+ </group>
+ <group name="Fig18"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EC"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig2"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig18.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EC"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig18.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="521"
+ y="818" />
+ <lineto x="325"
+ y="818" />
+ </path>
+ </group>
+ <group name="Fig19"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EE"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig11"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig19.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014EE"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig19.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="848" />
+ <lineto x="521"
+ y="848" />
+ </path>
+ </group>
+ <group name="Fig20"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F0"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig2"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig20.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F0"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig20.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="521"
+ y="898" />
+ <lineto x="325"
+ y="898" />
+ </path>
+ </group>
+ <group name="Fig21"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F2"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig11.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig11"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig21.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F2"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig21.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="325"
+ y="960" />
+ <lineto x="521"
+ y="960" />
+ </path>
+ </group>
+ <group name="Fig22"
+ description="org.argouml.sequence2.diagram.FigMessage"
+ href="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F4"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2.0"
+ destPortFig="Fig11.0"
+ sourceFigNode="Fig2"
+ destFigNode="Fig11"
+
+ <argouml:pathitem figname="Fig22.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-31-1--109--3f2245a7:126a0c29625:-8000:00000000000014F4"
+ angle="270.0"
+ offset="10" />
+ </private>
+ <path name="Fig22.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="521"
+ y="1010" />
+ <lineto x="325"
+ y="1010" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.collaboration.ui.UMLCollaborationDiagram|-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001728"
+ name="Collaboration Diagram"
+>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001493"
+ name="TestTypesClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[112, 112, 217, 82]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="112"
+ y="112"
+ width="217"
+ height="82"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[112, 112, 217, 17]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="112"
+ y="112"
+ width="217"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="113"
+ y="113"
+ width="215"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="112"
+ y="129"
+ width="217"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >DeviceTest</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[112, 151, 217, 42]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000158F"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="112"
+ y="151"
+ width="217"
+ height="42"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="112"
+ y="151" />
+ <lineto x="328"
+ y="151" />
+ </path>
+ <text name="Fig0.3.2"
+ x="112"
+ y="152"
+ width="217"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >setDevice(device : TestDevice) : void</text>
+ <text name="Fig0.3.3"
+ x="112"
+ y="167"
+ width="145"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getDevice() : TestDevice</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="112"
+ y="112"
+ width="217"
+ height="82"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[416, 112, 218, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="416"
+ y="112"
+ width="218"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[416, 112, 218, 17]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="416"
+ y="112"
+ width="218"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.1.1"
+ x="417"
+ y="113"
+ width="216"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig1.2"
+ x="416"
+ y="129"
+ width="218"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >RemoteTest</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[416, 151, 218, 27]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000149E"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="416"
+ y="151"
+ width="218"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="416"
+ y="151" />
+ <lineto x="633"
+ y="151" />
+ </path>
+ <text name="Fig1.3.2"
+ x="416"
+ y="152"
+ width="221"
+ height="24"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >run(listener : ITestRunListener) : void</text>
+ </group>
+ <rectangle name="Fig1.4"
+ x="416"
+ y="112"
+ width="218"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[120, 240, 599, 125]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=false;"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="120"
+ y="240"
+ width="599"
+ height="125"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[120, 240, 599, 0]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.1.0"
+ x="120"
+ y="240"
+ width="599"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.2"
+ x="120"
+ y="240"
+ width="599"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >InstrumentationTest</text>
+ <group name="Fig2.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[120, 262, 599, 102]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="120"
+ y="262"
+ width="599"
+ height="102"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="120"
+ y="262" />
+ <lineto x="718"
+ y="262" />
+ </path>
+ <text name="Fig2.3.2"
+ x="120"
+ y="263"
+ width="217"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >setDevice(device : TestDevice) : void</text>
+ <text name="Fig2.3.3"
+ x="120"
+ y="278"
+ width="145"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getDevice() : TestDevice</text>
+ <text name="Fig2.3.4"
+ x="120"
+ y="293"
+ width="130"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >countTestCases() : int</text>
+ <text name="Fig2.3.5"
+ x="120"
+ y="308"
+ width="598"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createRemoteAndroidTestRunner(packageName : String,device : IDevice) : IRemoteAndroidTestRunner</text>
+ <text name="Fig2.3.6"
+ x="120"
+ y="323"
+ width="221"
+ height="18"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >run(listener : ITestRunListener) : void</text>
+ <text name="Fig2.3.7"
+ x="120"
+ y="338"
+ width="173"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >run(result : TestResult) : void</text>
+ </group>
+ <group name="Fig2.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[0, 0, 0, 0]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:0000000000001494"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.4.0"
+ x="10"
+ y="32"
+ width="599"
+ height="54"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig2.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="10"
+ y="32" />
+ <lineto x="608"
+ y="32" />
+ </path>
+ </group>
+ <rectangle name="Fig2.5"
+ x="120"
+ y="240"
+ width="599"
+ height="125"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161D"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2"
+ destPortFig="Fig1"
+ sourceFigNode="Fig2"
+ destFigNode="Fig1"
+
+ <argouml:pathitem figname="Fig3.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000161D"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig3.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="518"
+ y="240" />
+ <lineto x="518"
+ y="179" />
+ </path>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192E"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig2"
+ destPortFig="Fig0"
+ sourceFigNode="Fig2"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000192E"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig4.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="305"
+ y="240" />
+ <lineto x="305"
+ y="194" />
+ </path>
+ </group>
+ <group name="Fig5"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[296, 0, 137, 68]pathVisible=true;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.0"
+ x="296"
+ y="0"
+ width="137"
+ height="68"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig5.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[296, 0, 137, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.1.0"
+ x="296"
+ y="0"
+ width="137"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig5.2"
+ x="296"
+ y="0"
+ width="137"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >junit::framework::Test</text>
+ <group name="Fig5.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[296, 43, 137, 24]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.3.0"
+ x="296"
+ y="43"
+ width="137"
+ height="24"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="296"
+ y="43" />
+ <lineto x="432"
+ y="43" />
+ </path>
+ </group>
+ <group name="Fig5.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[296, 22, 137, 21]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000DC1"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig5.4.0"
+ x="296"
+ y="22"
+ width="137"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig5.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="296"
+ y="22" />
+ <lineto x="432"
+ y="22" />
+ </path>
+ </group>
+ <rectangle name="Fig5.5"
+ x="296"
+ y="0"
+ width="137"
+ height="68"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig6"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004578"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig5"
+ sourceFigNode="Fig0"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig6.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004578"
+ angle="85.0"
+ offset="26" />
+ </private>
+ <path name="Fig6.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="296"
+ y="112" />
+ <lineto x="296"
+ y="68" />
+ </path>
+ </group>
+ <group name="Fig7"
+ description="org.argouml.uml.diagram.ui.FigDependency"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004579"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig5"
+ sourceFigNode="Fig1"
+ destFigNode="Fig5"
+
+ <argouml:pathitem figname="Fig7.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004579"
+ angle="85.0"
+ offset="47" />
+ </private>
+ <path name="Fig7.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="433"
+ y="112" />
+ <lineto x="433"
+ y="68" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-31-1--109--101452ba:1269fd733ea:-8000:0000000000001390"
+ name="ResultClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[232, 240, 302, 112]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="232"
+ y="240"
+ width="302"
+ height="112"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[232, 240, 302, 17]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="232"
+ y="240"
+ width="302"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="233"
+ y="241"
+ width="300"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="232"
+ y="257"
+ width="302"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TestInvocationListener</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[232, 279, 302, 72]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:000000000000157C"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="232"
+ y="279"
+ width="302"
+ height="72"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="232"
+ y="279" />
+ <lineto x="533"
+ y="279" />
+ </path>
+ <text name="Fig0.3.2"
+ x="232"
+ y="280"
+ width="260"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >invokationStarted(buildInfo : BuildInfo) : void</text>
+ <text name="Fig0.3.3"
+ x="232"
+ y="295"
+ width="296"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunStarted(name : String,numTests : int) : void</text>
+ <text name="Fig0.3.4"
+ x="232"
+ y="310"
+ width="302"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunFailed(errorMessage : String,log : File) : void</text>
+ <text name="Fig0.3.5"
+ x="232"
+ y="325"
+ width="144"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >invocationEnded() : void</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="232"
+ y="240"
+ width="302"
+ height="112"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[224, 392, 206, 71]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="224"
+ y="392"
+ width="206"
+ height="71"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[224, 392, 206, 0]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="224"
+ y="392"
+ width="206"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig1.2"
+ x="224"
+ y="392"
+ width="206"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TextResultReporter</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[224, 435, 206, 27]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="224"
+ y="435"
+ width="206"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="224"
+ y="435" />
+ <lineto x="429"
+ y="435" />
+ </path>
+ <text name="Fig1.3.2"
+ x="224"
+ y="436"
+ width="206"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> TextResultReporter()</text>
+ </group>
+ <group name="Fig1.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[224, 414, 206, 21]"
+ href="-84-18-102--98-da07738:126b0a6a7d0:-8000:000000000000148D"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.4.0"
+ x="224"
+ y="414"
+ width="206"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="224"
+ y="414" />
+ <lineto x="429"
+ y="414" />
+ </path>
+ </group>
+ <rectangle name="Fig1.5"
+ x="224"
+ y="392"
+ width="206"
+ height="71"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[216, 16, 405, 161]pathVisible=true;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="216"
+ y="16"
+ width="405"
+ height="161"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[216, 16, 405, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.1.0"
+ x="216"
+ y="16"
+ width="405"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.2"
+ x="216"
+ y="16"
+ width="405"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >com::android::ddmlib::testrunner::ITestRunListener</text>
+ <group name="Fig2.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[216, 59, 405, 117]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="216"
+ y="59"
+ width="405"
+ height="117"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="216"
+ y="59" />
+ <lineto x="620"
+ y="59" />
+ </path>
+ <text name="Fig2.3.2"
+ x="216"
+ y="60"
+ width="214"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunStarted(testCount : int) : void</text>
+ <text name="Fig2.3.3"
+ x="216"
+ y="75"
+ width="241"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunEnded(elapsedTime : long) : void</text>
+ <text name="Fig2.3.4"
+ x="216"
+ y="90"
+ width="252"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunStopped(elapsedTime : long) : void</text>
+ <text name="Fig2.3.5"
+ x="216"
+ y="105"
+ width="221"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testStarted(test : TestIdentifier) : void</text>
+ <text name="Fig2.3.6"
+ x="216"
+ y="120"
+ width="217"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testEnded(test : TestIdentifier) : void</text>
+ <text name="Fig2.3.7"
+ x="216"
+ y="135"
+ width="404"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testFailed(status : TestFailure,test : TestIdentifier,trace : String) : void</text>
+ <text name="Fig2.3.8"
+ x="216"
+ y="150"
+ width="250"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >testRunFailed(errorMessage : String) : void</text>
+ </group>
+ <group name="Fig2.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[216, 38, 405, 21]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000EAA"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.4.0"
+ x="216"
+ y="38"
+ width="405"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="216"
+ y="38" />
+ <lineto x="620"
+ y="38" />
+ </path>
+ </group>
+ <rectangle name="Fig2.5"
+ x="216"
+ y="16"
+ width="405"
+ height="161"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004576"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig3.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:0000000000004576"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig3.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="336"
+ y="392" />
+ <lineto x="336"
+ y="352" />
+ </path>
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.ui.FigUsage"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457A"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig2"
+ sourceFigNode="Fig0"
+ destFigNode="Fig2"
+
+ <argouml:pathitem figname="Fig4.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457A"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig4.0"
+ description="org.tigris.gef.presentation.FigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="400"
+ y="240" />
+ <lineto x="400"
+ y="177" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D07"
+ name="InvokerClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[248, 40, 325, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="248"
+ y="40"
+ width="325"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[248, 40, 325, 17]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="248"
+ y="40"
+ width="325"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="249"
+ y="41"
+ width="323"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="248"
+ y="57"
+ width="325"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >TestInvocation</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[248, 79, 325, 27]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001549"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="248"
+ y="79"
+ width="325"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="248"
+ y="79" />
+ <lineto x="572"
+ y="79" />
+ </path>
+ <text name="Fig0.3.2"
+ x="248"
+ y="80"
+ width="325"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >doRun(device : TestDevice,config : Configuration) : void</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="248"
+ y="40"
+ width="325"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[216, 184, 463, 80]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=false;"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="216"
+ y="184"
+ width="463"
+ height="80"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[216, 184, 463, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="216"
+ y="184"
+ width="463"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig1.2"
+ x="216"
+ y="184"
+ width="463"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >BaseTestInvocation</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[216, 206, 463, 57]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="216"
+ y="206"
+ width="463"
+ height="57"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="216"
+ y="206" />
+ <lineto x="678"
+ y="206" />
+ </path>
+ <text name="Fig1.3.2"
+ x="216"
+ y="207"
+ width="203"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> BaseTestInvocation()</text>
+ <text name="Fig1.3.3"
+ x="216"
+ y="222"
+ width="325"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >doRun(device : TestDevice,config : Configuration) : void</text>
+ <text name="Fig1.3.4"
+ x="216"
+ y="237"
+ width="463"
+ height="24"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >runTests(device : TestDevice,test : Test,listener : TestInvocationListener) : void</text>
+ </group>
+ <group name="Fig1.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[0, 0, 0, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001545"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.4.0"
+ x="10"
+ y="32"
+ width="459"
+ height="24"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig1.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="10"
+ y="32" />
+ <lineto x="468"
+ y="32" />
+ </path>
+ </group>
+ <rectangle name="Fig1.5"
+ x="216"
+ y="184"
+ width="463"
+ height="80"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.ui.FigAbstraction"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001615"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ sourcePortFig="Fig1"
+ destPortFig="Fig0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+
+ <argouml:pathitem figname="Fig2.1"
+ classname="org.argouml.uml.diagram.ui.PathItemPlacement"
+ figclassname="org.argouml.uml.diagram.ui.FigTextGroup"
+ ownerhref="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001615"
+ angle="270.0"
+ offset="25" />
+ </private>
+ <path name="Fig2.0"
+ description="org.argouml.gefext.ArgoFigPoly"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="427"
+ y="184" />
+ <lineto x="427"
+ y="107" />
+ </path>
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D10"
+ name="ConfigClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[64, 24, 404, 157]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="64"
+ y="24"
+ width="404"
+ height="157"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[64, 24, 404, 17]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="64"
+ y="24"
+ width="404"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig0.1.1"
+ x="65"
+ y="25"
+ width="402"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig0.2"
+ x="64"
+ y="41"
+ width="404"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >Configuration</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[64, 63, 404, 117]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="64"
+ y="63"
+ width="404"
+ height="117"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="64"
+ y="63" />
+ <lineto x="467"
+ y="63" />
+ </path>
+ <text name="Fig0.3.2"
+ x="64"
+ y="64"
+ width="196"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getBuildProvider() : BuildProvider</text>
+ <text name="Fig0.3.3"
+ x="64"
+ y="79"
+ width="222"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getTargetPreparor() : TargetPreparor</text>
+ <text name="Fig0.3.4"
+ x="64"
+ y="94"
+ width="94"
+ height="18"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getTest() : Test</text>
+ <text name="Fig0.3.5"
+ x="64"
+ y="109"
+ width="298"
+ height="18"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getTestInvocationListener() : TestInvocationListener</text>
+ <text name="Fig0.3.6"
+ x="64"
+ y="124"
+ width="224"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getDeviceRecovery() : DeviceRecovery</text>
+ <text name="Fig0.3.7"
+ x="64"
+ y="139"
+ width="165"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getLogOutput() : ILogOutput</text>
+ <text name="Fig0.3.8"
+ x="64"
+ y="154"
+ width="359"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getConfigurationObject(name : String,expectedType) : Object</text>
+ </group>
+ <rectangle name="Fig0.4"
+ x="64"
+ y="24"
+ width="404"
+ height="157"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig1"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[560, 40, 305, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.0"
+ x="560"
+ y="40"
+ width="305"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig1.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[560, 40, 305, 17]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.1.0"
+ x="560"
+ y="40"
+ width="305"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig1.1.1"
+ x="561"
+ y="41"
+ width="303"
+ height="15"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig1.2"
+ x="560"
+ y="57"
+ width="305"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >ConfigurationReceiver</text>
+ <group name="Fig1.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[560, 79, 305, 27]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D1D"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig1.3.0"
+ x="560"
+ y="79"
+ width="305"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig1.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="560"
+ y="79" />
+ <lineto x="864"
+ y="79" />
+ </path>
+ <text name="Fig1.3.2"
+ x="560"
+ y="80"
+ width="305"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >setConfiguration(configuration : Configuration) : void</text>
+ </group>
+ <rectangle name="Fig1.4"
+ x="560"
+ y="40"
+ width="305"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig2"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[544, 168, 418, 50]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=false;"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.0"
+ x="544"
+ y="168"
+ width="418"
+ height="50"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig2.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[544, 168, 418, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.1.0"
+ x="544"
+ y="168"
+ width="418"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig2.2"
+ x="544"
+ y="168"
+ width="418"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >ConfigurationException</text>
+ <group name="Fig2.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[544, 190, 418, 27]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.3.0"
+ x="544"
+ y="190"
+ width="418"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig2.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="544"
+ y="190" />
+ <lineto x="961"
+ y="190" />
+ </path>
+ <text name="Fig2.3.2"
+ x="544"
+ y="191"
+ width="294"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> ConfigurationException(msg : String)</text>
+ </group>
+ <group name="Fig2.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[0, 0, 0, 0]"
+ href="-84-18-102--98-6ce1d1d3:126c4491375:-8000:0000000000001559"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig2.4.0"
+ x="10"
+ y="32"
+ width="409"
+ height="24"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ visibility="0"
+ />
+ <path name="Fig2.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ visibility="0"
+ >
+ <moveto x="10"
+ y="32" />
+ <lineto x="418"
+ y="32" />
+ </path>
+ </group>
+ <rectangle name="Fig2.5"
+ x="544"
+ y="168"
+ width="418"
+ height="50"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig3"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[72, 208, 346, 116]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.0"
+ x="72"
+ y="208"
+ width="346"
+ height="116"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig3.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[72, 208, 346, 0]"
+ href="-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.1.0"
+ x="72"
+ y="208"
+ width="346"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig3.2"
+ x="72"
+ y="208"
+ width="346"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >ConfigurationFactory</text>
+ <group name="Fig3.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[72, 251, 346, 72]"
+ href="-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.3.0"
+ x="72"
+ y="251"
+ width="346"
+ height="72"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig3.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="72"
+ y="251" />
+ <lineto x="417"
+ y="251" />
+ </path>
+ <text name="Fig3.3.2"
+ x="72"
+ y="252"
+ width="211"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> ConfigurationFactory()</text>
+ <text name="Fig3.3.3"
+ x="72"
+ y="267"
+ width="255"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createDefaultConfiguration() : Configuration</text>
+ <text name="Fig3.3.4"
+ x="72"
+ y="282"
+ width="338"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createConfigurationFromXML(xmlFile : File) : Configuration</text>
+ <text name="Fig3.3.5"
+ x="72"
+ y="297"
+ width="346"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createConfigurationFromArgs(args : String[]) : Configuration</text>
+ </group>
+ <group name="Fig3.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[72, 230, 346, 21]"
+ href="-84-18-102--98-18df7e4d:126ce6a35e2:-8000:0000000000001987"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig3.4.0"
+ x="72"
+ y="230"
+ width="346"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig3.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="72"
+ y="230" />
+ <lineto x="417"
+ y="230" />
+ </path>
+ </group>
+ <rectangle name="Fig3.5"
+ x="72"
+ y="208"
+ width="346"
+ height="116"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <group name="Fig4"
+ description="org.argouml.uml.diagram.static_structure.ui.FigInterface[552, 248, 97, 67]pathVisible=false;stereotypeView=0;operationsVisible=true;operationsVisible=true"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.0"
+ x="552"
+ y="248"
+ width="97"
+ height="67"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="0 255 255"
+ />
+ <group name="Fig4.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[552, 248, 97, 17]"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457E"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.1.0"
+ x="552"
+ y="248"
+ width="97"
+ height="17"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ <text name="Fig4.1.1"
+ x="553"
+ y="249"
+ width="95"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ ><<interface>></text>
+ </group>
+ <text name="Fig4.2"
+ x="552"
+ y="265"
+ width="97"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >Option</text>
+ <group name="Fig4.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[552, 287, 97, 27]"
+ href="-84-18-102--98--54ac2c9d:126ce898ce9:-8000:000000000000457E"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig4.3.0"
+ x="552"
+ y="287"
+ width="97"
+ height="27"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig4.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="552"
+ y="287" />
+ <lineto x="648"
+ y="287" />
+ </path>
+ <text name="Fig4.3.2"
+ x="552"
+ y="288"
+ width="46"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >name()</text>
+ </group>
+ <rectangle name="Fig4.4"
+ x="552"
+ y="248"
+ width="97"
+ height="67"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+</pgml>
+<pgml description="org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram|-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D21"
+ name="CommandClassDiagram"
+>
+ <group name="Fig0"
+ description="org.argouml.uml.diagram.static_structure.ui.FigClass[120, 32, 292, 176]pathVisible=false;stereotypeView=0;operationsVisible=true;attributesVisible=true;"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.0"
+ x="120"
+ y="32"
+ width="292"
+ height="176"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <group name="Fig0.1"
+ description="org.argouml.uml.diagram.ui.FigStereotypesGroup[120, 32, 292, 0]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.1.0"
+ x="120"
+ y="32"
+ width="292"
+ height="0"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+ <text name="Fig0.2"
+ x="120"
+ y="32"
+ width="292"
+ height="22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Center"
+ >Command</text>
+ <group name="Fig0.3"
+ description="org.argouml.uml.diagram.ui.FigOperationsCompartment[120, 75, 292, 132]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.3.0"
+ x="120"
+ y="75"
+ width="292"
+ height="132"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.3.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="120"
+ y="75" />
+ <lineto x="411"
+ y="75" />
+ </path>
+ <text name="Fig0.3.2"
+ x="120"
+ y="76"
+ width="153"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ ><<create>> Command()</text>
+ <text name="Fig0.3.3"
+ x="120"
+ y="91"
+ width="146"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >run(args : String[]) : void</text>
+ <text name="Fig0.3.4"
+ x="120"
+ y="106"
+ width="71"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >exit() : void</text>
+ <text name="Fig0.3.5"
+ x="120"
+ y="121"
+ width="213"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createRunInstance() : TestInvocation</text>
+ <text name="Fig0.3.6"
+ x="120"
+ y="136"
+ width="220"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >getDeviceManager() : DeviceManager</text>
+ <text name="Fig0.3.7"
+ x="120"
+ y="151"
+ width="291"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >createConfiguration(args : String[]) : Configuration</text>
+ <text name="Fig0.3.8"
+ x="120"
+ y="166"
+ width="234"
+ height="15"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >printUsage(config : Configuration) : void</text>
+ <text name="Fig0.3.9"
+ x="120"
+ y="181"
+ width="155"
+ height="21"
+ fill="0"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ textcolor="black"
+ font="Dialog"
+ italic="false"
+ bold="false"
+ textsize="12"
+ justification="Left"
+ >main(args : String[]) : void</text>
+ </group>
+ <group name="Fig0.4"
+ description="org.argouml.uml.diagram.ui.FigAttributesCompartment[120, 54, 292, 21]"
+ href="-84-18-102--98--5782bb9b:1267dccd657:-8000:0000000000000D22"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig0.4.0"
+ x="120"
+ y="54"
+ width="292"
+ height="21"
+ fill="1"
+ fillcolor="white"
+ stroke="0"
+ strokecolor="black"
+ />
+ <path name="Fig0.4.1"
+ description="org.argouml.uml.diagram.ui.FigEditableCompartment$FigSeperator"
+ fill="1"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ >
+ <moveto x="120"
+ y="54" />
+ <lineto x="411"
+ y="54" />
+ </path>
+ </group>
+ <rectangle name="Fig0.5"
+ x="120"
+ y="32"
+ width="292"
+ height="176"
+ fill="0"
+ fillcolor="white"
+ stroke="1"
+ strokecolor="black"
+ />
+ </group>
+</pgml>
+<todo>
+<todolist>
+</todolist>
+<resolvedcritics>
+</resolvedcritics>
+</todo>
+</uml>