<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:UMLLabProfile="http:///schemas/UMLLabProfile/NS/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http:///schemas/UMLLabProfile/NS/0 pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile">
  <uml:Model xmi:id="_X-h8YCTSEeKBFYtaGkJu3A" name="JavaParser">
    <eAnnotations xmi:id="_YDf78CTSEeKBFYtaGkJu3A" source="http://www.yatta-solutions.com/umllab/codegen/codegenDirectory">
      <details xmi:id="_YDgjACTSEeKBFYtaGkJu3A" key="codegenDirectory" value="/JavaParser/src"/>
    </eAnnotations>
    <eAnnotations xmi:id="_Y8FJwCTSEeKBFYtaGkJu3A" source="com.yattasolutions.codegen.RoundTripInformation">
      <details xmi:id="_Y8FJwSTSEeKBFYtaGkJu3A" key="AssociatedSourceCode" value="/JavaParser/src/stableproject/ClassVisitor.java;2282944030/1;/JavaParser/src/stableproject/Driver.java;3802047197/1;/JavaParser/src/stableproject/Main.java;795061909/1;/JavaParser/src/stableproject/MethodVisitor.java;816857295/1;/JavaParser/src/stableproject/Node.java;4164655266/1;/JavaParser/src/stableproject/NodeBank.java;3068821464/1;/JavaParser/src/stableproject/NullCompilationUnitException.java;3725229577/1;/JavaParser/src/stableproject/ParameterVisitor.java;664153064/1;"/>
    </eAnnotations>
    <elementImport xmi:id="_Yl-98CTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
    </elementImport>
    <elementImport xmi:id="_Yl-98STSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
    </elementImport>
    <elementImport xmi:id="_Yl-98iTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
    </elementImport>
    <elementImport xmi:id="_Yl-98yTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
    </elementImport>
    <elementImport xmi:id="_Yl_lACTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
    </elementImport>
    <elementImport xmi:id="_Yl_lASTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
    </elementImport>
    <elementImport xmi:id="_Yl_lAiTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
    </elementImport>
    <elementImport xmi:id="_Yl_lAyTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
    </elementImport>
    <elementImport xmi:id="_YmAMECTSEeKBFYtaGkJu3A">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
    </elementImport>
    <packagedElement xmi:type="uml:Package" xmi:id="_YmFroCTSEeKBFYtaGkJu3A" name="java">
      <packagedElement xmi:type="uml:Package" xmi:id="_YmGSsCTSEeKBFYtaGkJu3A" name="util">
        <packagedElement xmi:type="uml:Interface" xmi:id="_Y015UCTSEeKBFYtaGkJu3A" name="List"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1QwESTSEeKBFYtaGkJu3A" name="HashMap"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1jrACTSEeKBFYtaGkJu3A" name="ArrayList"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_Y1k5ISTSEeKBFYtaGkJu3A" name="Collection"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_Y2SDwCTSEeKBFYtaGkJu3A" name="Iterator"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_YmUVICTSEeKBFYtaGkJu3A" name="io">
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1I0QSTSEeKBFYtaGkJu3A" name="File"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1KpcSTSEeKBFYtaGkJu3A" name="FileInputStream"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1NswSTSEeKBFYtaGkJu3A" name="FileNotFoundException"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1Ph8STSEeKBFYtaGkJu3A" name="IOException"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_Y2uIoCTSEeKBFYtaGkJu3A" name="lang">
        <packagedElement xmi:type="uml:Class" xmi:id="_Y2uIoSTSEeKBFYtaGkJu3A" name="Object"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y3UlkCTSEeKBFYtaGkJu3A" name="Exception"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_YmG5wCTSEeKBFYtaGkJu3A" name="japa">
      <packagedElement xmi:type="uml:Package" xmi:id="_YmG5wSTSEeKBFYtaGkJu3A" name="parser">
        <packagedElement xmi:type="uml:Package" xmi:id="_YmG5wiTSEeKBFYtaGkJu3A" name="ast">
          <packagedElement xmi:type="uml:Package" xmi:id="_YmHg0CTSEeKBFYtaGkJu3A" name="body">
            <packagedElement xmi:type="uml:Class" xmi:id="_Y08nACTSEeKBFYtaGkJu3A" name="ClassOrInterfaceDeclaration"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_Y1muUCTSEeKBFYtaGkJu3A" name="MethodDeclaration"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_Y1n8cSTSEeKBFYtaGkJu3A" name="ModifierSet"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_Y1yUgSTSEeKBFYtaGkJu3A" name="Parameter"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_YmIH4CTSEeKBFYtaGkJu3A" name="type">
            <packagedElement xmi:type="uml:Class" xmi:id="_Y091ISTSEeKBFYtaGkJu3A" name="ClassOrInterfaceType"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_YmIH4STSEeKBFYtaGkJu3A" name="visitor">
            <packagedElement xmi:type="uml:Class" xmi:id="_Y0_qUSTSEeKBFYtaGkJu3A" name="GenericVisitorAdapter"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_Y10wwSTSEeKBFYtaGkJu3A" name="VoidVisitorAdapter"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_Y1G_ESTSEeKBFYtaGkJu3A" name="CompilationUnit"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_Y2TR4STSEeKBFYtaGkJu3A" name="Comment"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1D7wCTSEeKBFYtaGkJu3A" name="JavaParser"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1Fw8STSEeKBFYtaGkJu3A" name="ParseException"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_YmOOgCTSEeKBFYtaGkJu3A" name="stableproject">
      <packagedElement xmi:type="uml:Class" xmi:id="_Yro6ACTSEeKBFYtaGkJu3A" name="ClassVisitor">
        <generalization xmi:id="_Y3Q7MCTSEeKBFYtaGkJu3A" general="_Y0_qUSTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y5tLMCTSEeKBFYtaGkJu3A" name="extendz">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y5tyQSTSEeKBFYtaGkJu3A" name="name">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6X5kCTSEeKBFYtaGkJu3A" name="visit" specification="_Y2wk4CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6X5kSTSEeKBFYtaGkJu3A" name="n" type="_Y08nACTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6X5kiTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6X5kyTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>cleanse();&#xD;
&#xD;
		// set the extends&#xD;
		if (n.getExtends() != null)&#xD;
			extendz = (String) n.getExtends().get(0).getName();&#xD;
&#xD;
		// set the name&#xD;
		name = ((String) n.getName());&#xD;
&#xD;
		// return classname&#xD;
		return name;&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6ZuwCTSEeKBFYtaGkJu3A" name="cleanse" specification="_Ysi48CTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>extendz = (String) &quot;&quot;;&#xD;
		name = (String) &quot;&quot;;&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6ZuwSTSEeKBFYtaGkJu3A" name="getExtends" specification="_YsmjUCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6ZuwiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>return extendz;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_Ysi48CTSEeKBFYtaGkJu3A" name="cleanse" visibility="private" method="_Y6ZuwCTSEeKBFYtaGkJu3A"/>
        <ownedOperation xmi:id="_YsmjUCTSEeKBFYtaGkJu3A" name="getExtends" method="_Y6ZuwSTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_YsnKYCTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Y2wk4CTSEeKBFYtaGkJu3A" name="visit" method="_Y6X5kCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y2wk4STSEeKBFYtaGkJu3A" name="n" type="_Y08nACTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y2wk4iTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y2xL8CTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_Ysq0wCTSEeKBFYtaGkJu3A" name="Driver">
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6aV0CTSEeKBFYtaGkJu3A" name="main" specification="_YssC4CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6aV0STSEeKBFYtaGkJu3A" name="args">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y6aV0iTSEeKBFYtaGkJu3A" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>new Main();
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_YssC4CTSEeKBFYtaGkJu3A" name="main" isStatic="true" method="_Y6aV0CTSEeKBFYtaGkJu3A" raisedException="_Y3UlkCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_YssC4STSEeKBFYtaGkJu3A" name="args">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yssp8CTSEeKBFYtaGkJu3A" value="*"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_Yst4ECTSEeKBFYtaGkJu3A" name="Main">
        <ownedComment xmi:id="_Y6t30CTSEeKBFYtaGkJu3A">
          <body>A main class for running the project&#xD;
 *</body>
        </ownedComment>
        <ownedAttribute xmi:id="_Y5vAYCTSEeKBFYtaGkJu3A" name="nodeBank" type="_Yt0EQCTSEeKBFYtaGkJu3A" association="_Y63o0CTSEeKBFYtaGkJu3A"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6a84CTSEeKBFYtaGkJu3A" name="Main" specification="_YsvtQCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6a84STSEeKBFYtaGkJu3A" type="_Yst4ECTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>nodeBank = new NodeBank();&#xD;
&#xD;
		chooseFiles();&#xD;
		populateBank();&#xD;
		nodeBank.printAll();&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6a84iTSEeKBFYtaGkJu3A" name="chooseFiles" specification="_YswUUCTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>JFileChooser fc = new JFileChooser();&#xD;
&#xD;
		fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);&#xD;
		fc.showOpenDialog(new JFrame());&#xD;
&#xD;
		// creates an input stream for the file to be parsed&#xD;
		File file = fc.getSelectedFile();&#xD;
&#xD;
		/* Directory */&#xD;
		if (file.isDirectory())&#xD;
			checkInsideFolder(file);&#xD;
&#xD;
		else&#xD;
			try {&#xD;
				nodeBank.addNode(new Node(parseFile(file), file.getName()));&#xD;
			} catch (NullCompilationUnitException e) {&#xD;
				// System.out.println(&quot;* ERROR: wrong file type &quot; +&#xD;
				// file.getName());&#xD;
			}&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6bj8CTSEeKBFYtaGkJu3A" name="checkInsideFolder" specification="_Y5Dq8CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6bj8STSEeKBFYtaGkJu3A" name="file" type="_Y1I0QSTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>for (File child : file.listFiles()) {&#xD;
&#xD;
			if (child.isDirectory())&#xD;
				checkInsideFolder(child);&#xD;
&#xD;
			try {&#xD;
				nodeBank.addNode(new Node(parseFile(child), child.getName()));&#xD;
			} catch (NullCompilationUnitException e) {&#xD;
				// System.out.println(&quot;* ERROR: wrong file type &quot; +&#xD;
				// child.getName());&#xD;
&#xD;
			}&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6bj8iTSEeKBFYtaGkJu3A" name="populateBank" specification="_Ysw7YCTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>MethodVisitor mv = new MethodVisitor();&#xD;
		ClassVisitor cv = new ClassVisitor&lt;String>();&#xD;
&#xD;
		for (Node n : nodeBank.bank) {&#xD;
			mv.cleanse();&#xD;
&#xD;
			if (n.compUnit != null) {&#xD;
&#xD;
				// Seup visitors&#xD;
				mv.visit(n.compUnit, null);&#xD;
				cv.visit(n.compUnit, null);&#xD;
&#xD;
				// add clasname&#xD;
				n.setName((String) cv.name);&#xD;
&#xD;
				// add extends&#xD;
				n.setExtends((String) cv.extendz);&#xD;
&#xD;
				// clone public methods to the node&#xD;
				for (String s : mv.publicMethods)&#xD;
					n.addPublicMethod(s);&#xD;
&#xD;
				// add method list to a hashmap&#xD;
				n.setmethodHash(mv.methodList);&#xD;
&#xD;
			}&#xD;
		}&#xD;
&#xD;
		/* After analysed the files re-iterate through */&#xD;
		for (Node n : nodeBank.bank) {&#xD;
&#xD;
			setNOC(n);&#xD;
&#xD;
			setDIT(n);&#xD;
		}&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6cLACTSEeKBFYtaGkJu3A" name="setDIT" specification="_Y1fZkCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6cLASTSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>// set DIT&#xD;
		if (n.extendz != null &amp;&amp; !n.extendz.matches(&quot;&quot;))&#xD;
			n.setDIT((getTree((java.lang.String) n.name)));&#xD;
&#xD;
		else&#xD;
			n.setDIT(1);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6cLAiTSEeKBFYtaGkJu3A" name="setNOC" specification="_Y1gnsCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6cLAyTSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>int kids = 0;&#xD;
&#xD;
		// identify if any classes extend n&#xD;
		for (Node n2 : nodeBank.bank)&#xD;
			if (n2.getExtends().matches(n.getClassName()))&#xD;
				kids++;&#xD;
&#xD;
		n.setNoKids(kids);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6cyECTSEeKBFYtaGkJu3A" name="getTree" specification="_YsywkCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6cyESTSEeKBFYtaGkJu3A" name="leaf">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Y6cyEiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>int count = 1;&#xD;
&#xD;
		if (nodeBank.hasClass(leaf)) {&#xD;
&#xD;
			count = count&#xD;
					+ getTree((java.lang.String) nodeBank.getExendsList(leaf));&#xD;
&#xD;
		}&#xD;
&#xD;
		else&#xD;
			return 1;&#xD;
&#xD;
		return count;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6dZICTSEeKBFYtaGkJu3A" name="parseFile" specification="_Y5FgICTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6dZISTSEeKBFYtaGkJu3A" name="f" type="_Y1I0QSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6dZIiTSEeKBFYtaGkJu3A" type="_Y1G_ESTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>if (f.getName().endsWith(&quot;.java&quot;)) {&#xD;
&#xD;
			FileInputStream in = null;&#xD;
			try {&#xD;
				in = new FileInputStream(f.getAbsolutePath());&#xD;
			} catch (FileNotFoundException e) {&#xD;
				// TODO Auto-generated catch block&#xD;
				e.printStackTrace();&#xD;
			}&#xD;
&#xD;
			try {&#xD;
				// parse the file&#xD;
				try {&#xD;
					return JavaParser.parse(in);&#xD;
				} catch (ParseException e) {&#xD;
					// TODO Auto-generated catch block&#xD;
					e.printStackTrace();&#xD;
				}&#xD;
			} finally {&#xD;
				try {&#xD;
					in.close();&#xD;
				} catch (IOException e) {&#xD;
					// TODO Auto-generated catch block&#xD;
					e.printStackTrace();&#xD;
				}&#xD;
			}&#xD;
		}&#xD;
&#xD;
		return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_YsvtQCTSEeKBFYtaGkJu3A" name="Main" method="_Y6a84CTSEeKBFYtaGkJu3A">
          <eAnnotations xmi:id="_YsvtQSTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_YsvtQiTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_YsvtQyTSEeKBFYtaGkJu3A" type="_Yst4ECTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_YswUUCTSEeKBFYtaGkJu3A" name="chooseFiles" visibility="private" method="_Y6a84iTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6t30STSEeKBFYtaGkJu3A">
            <body>Method or choosing files</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_Ysw7YCTSEeKBFYtaGkJu3A" name="populateBank" visibility="private" method="_Y6bj8iTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6ue4CTSEeKBFYtaGkJu3A">
            <body>Populate the node bank</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_YsywkCTSEeKBFYtaGkJu3A" name="getTree" method="_Y6cyECTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6ue4yTSEeKBFYtaGkJu3A">
            <body>Count the next level up the inheritance tree&#xD;
	 * &#xD;
	 * @param leaf&#xD;
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YsywkSTSEeKBFYtaGkJu3A" name="leaf">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_YsywkiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Y1fZkCTSEeKBFYtaGkJu3A" name="setDIT" visibility="private" method="_Y6cLACTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6ue4STSEeKBFYtaGkJu3A">
            <body>Set the DIT&#xD;
	 * &#xD;
	 * @param n</body>
          </ownedComment>
          <ownedParameter xmi:id="_Y1fZkSTSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Y1gnsCTSEeKBFYtaGkJu3A" name="setNOC" visibility="private" method="_Y6cLAiTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6ue4iTSEeKBFYtaGkJu3A">
            <body>Set the number of children&#xD;
	 * &#xD;
	 * @param n</body>
          </ownedComment>
          <ownedParameter xmi:id="_Y1gnsSTSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Y5Dq8CTSEeKBFYtaGkJu3A" name="checkInsideFolder" visibility="private" method="_Y6bj8CTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6t30iTSEeKBFYtaGkJu3A">
            <body>Iterate through folders&#xD;
	 * &#xD;
	 * @param file</body>
          </ownedComment>
          <ownedParameter xmi:id="_Y5Dq8STSEeKBFYtaGkJu3A" name="file" type="_Y1I0QSTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Y5FgICTSEeKBFYtaGkJu3A" name="parseFile" visibility="private" method="_Y6dZICTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6ue5CTSEeKBFYtaGkJu3A">
            <body>Create a compilation for the file</body>
          </ownedComment>
          <ownedParameter xmi:id="_Y5FgISTSEeKBFYtaGkJu3A" name="f" type="_Y1I0QSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y5GHMCTSEeKBFYtaGkJu3A" type="_Y1G_ESTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_Ys7TcCTSEeKBFYtaGkJu3A" name="MethodVisitor">
        <ownedComment xmi:id="_Y6ue5STSEeKBFYtaGkJu3A">
          <body>Simple visitor implementation for visiting MethodDeclaration nodes.</body>
        </ownedComment>
        <generalization xmi:id="_Y5XM8CTSEeKBFYtaGkJu3A" general="_Y10wwSTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y5vncCTSEeKBFYtaGkJu3A" name="publicMethods" isOrdered="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y5vncSTSEeKBFYtaGkJu3A" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y5w1kCTSEeKBFYtaGkJu3A" name="methodList" type="_Y1QwESTSEeKBFYtaGkJu3A" association="_Y6428STSEeKBFYtaGkJu3A"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6dZIyTSEeKBFYtaGkJu3A" name="MethodVisitor" specification="_Ys8hkCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6dZJCTSEeKBFYtaGkJu3A" type="_Ys7TcCTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>methodList = new HashMap();&#xD;
		publicMethods = new ArrayList&lt;String>();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6eAMCTSEeKBFYtaGkJu3A" name="visit" specification="_Y5UwsCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6eAMSTSEeKBFYtaGkJu3A" name="n" type="_Y1muUCTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6eAMiTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>ParameterVisitor pm = new ParameterVisitor();&#xD;
&#xD;
		// keep track of public methods&#xD;
		if (ModifierSet.isPublic(n.getModifiers()))&#xD;
			publicMethods.add(n.getName());&#xD;
&#xD;
		pm.visit(n, null);&#xD;
		methodList.put(n.getName(), pm.paramList);&#xD;
		pm.paramList = null;&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6enQCTSEeKBFYtaGkJu3A" name="cleanse" specification="_Ys9vsCTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>publicMethods.clear();&#xD;
		methodList.clear();&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_Ys8hkCTSEeKBFYtaGkJu3A" name="MethodVisitor" method="_Y6dZIyTSEeKBFYtaGkJu3A">
          <eAnnotations xmi:id="_Ys9IoCTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_Ys9IoSTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_Ys9IoiTSEeKBFYtaGkJu3A" type="_Ys7TcCTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Ys9vsCTSEeKBFYtaGkJu3A" name="cleanse" method="_Y6enQCTSEeKBFYtaGkJu3A"/>
        <ownedOperation xmi:id="_Y5UwsCTSEeKBFYtaGkJu3A" name="visit" method="_Y6eAMCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y5UwsSTSEeKBFYtaGkJu3A" name="n" type="_Y1muUCTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y5UwsiTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_YtD2UCTSEeKBFYtaGkJu3A" name="Node">
        <ownedAttribute xmi:id="_Y5yqwCTSEeKBFYtaGkJu3A" name="compUnit" visibility="package" type="_Y1G_ESTSEeKBFYtaGkJu3A" association="_Y66FESTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y5zR0STSEeKBFYtaGkJu3A" name="name" visibility="package">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_Y5zR0iTSEeKBFYtaGkJu3A" value="&quot;&quot;"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y5z44STSEeKBFYtaGkJu3A" name="filename" visibility="package">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y50f8STSEeKBFYtaGkJu3A" name="methodHash" visibility="package" type="_Y1QwESTSEeKBFYtaGkJu3A" association="_Y67TMSTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y52VISTSEeKBFYtaGkJu3A" name="publicMethods" visibility="package" type="_Y1jrACTSEeKBFYtaGkJu3A" association="_Y68hUSTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y54KUCTSEeKBFYtaGkJu3A" name="extendz" visibility="package">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y54xYCTSEeKBFYtaGkJu3A" name="noKids" visibility="package">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_Y55YcCTSEeKBFYtaGkJu3A" name="dit" visibility="package">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6enQSTSEeKBFYtaGkJu3A" name="Node" specification="_Y5fv0CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6enQiTSEeKBFYtaGkJu3A" name="cu" type="_Y1G_ESTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6enQyTSEeKBFYtaGkJu3A" name="f">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Y6enRCTSEeKBFYtaGkJu3A" type="_YtD2UCTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>if (cu == null)
			throw new NullCompilationUnitException();
		filename = f;
		compUnit = cu;
		publicMethods = new ArrayList&lt;String>();
		methodHash = new HashMap&lt;String, List>();

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6fOUCTSEeKBFYtaGkJu3A" name="setName" specification="_YtU8ECTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6fOUSTSEeKBFYtaGkJu3A" name="n">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>this.name = n;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6f1YCTSEeKBFYtaGkJu3A" name="getFilename" specification="_YtWKMCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6f1YSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>return filename;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6f1YiTSEeKBFYtaGkJu3A" name="getCommentCount" specification="_YtWxQCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6f1YyTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>if (compUnit.getComments() != null)
			return compUnit.getComments().size();
		else
			return 0;

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6gccCTSEeKBFYtaGkJu3A" name="getComments" specification="_YtXYUCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6gccSTSEeKBFYtaGkJu3A" type="_Y2TR4STSEeKBFYtaGkJu3A" isOrdered="true" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y6gcciTSEeKBFYtaGkJu3A" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return compUnit.getComments();

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6gccyTSEeKBFYtaGkJu3A" name="addPublicMethod" specification="_YtZNgCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6gcdCTSEeKBFYtaGkJu3A" name="s">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>publicMethods.add(s);
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6hDgCTSEeKBFYtaGkJu3A" name="setExtends" specification="_YtaboCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6hDgSTSEeKBFYtaGkJu3A" name="extendz2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>this.extendz = extendz2;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6hDgiTSEeKBFYtaGkJu3A" name="getExtends" specification="_YtbCsCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6hqkCTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>if (extendz != null)
			return extendz;
		else
			return &quot;&quot;;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6hqkSTSEeKBFYtaGkJu3A" name="getClassName" specification="_YtbpwCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6hqkiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>return this.name;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6iRoCTSEeKBFYtaGkJu3A" name="setNoKids" specification="_Ytc34CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6iRoSTSEeKBFYtaGkJu3A" name="i">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>this.noKids = i;

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6iRoiTSEeKBFYtaGkJu3A" name="setDIT" specification="_YteGACTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6iRoyTSEeKBFYtaGkJu3A" name="i">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>this.dit = i;

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6i4sCTSEeKBFYtaGkJu3A" name="getDIT" specification="_YtetECTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6i4sSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>return this.dit;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6i4siTSEeKBFYtaGkJu3A" name="setmethodHash" specification="_Y5lPYCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6i4syTSEeKBFYtaGkJu3A" name="ml" type="_Y1QwESTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>methodHash.putAll(ml);

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6jfwCTSEeKBFYtaGkJu3A" name="printParamList" specification="_YtgiQCTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>Iterator&lt;String> it = methodHash.keySet().iterator();

		System.out.println(&quot;\t Count \t Method&quot;);
		while (it.hasNext()) {
			String meth = it.next();
			if (methodHash.get(meth) != null)
				System.out.println(&quot;\t &quot; + methodHash.get(meth).size() + &quot;\t&quot; + meth);

		}

	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_YtU8ECTSEeKBFYtaGkJu3A" name="setName" method="_Y6fOUCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vF8CTSEeKBFYtaGkJu3A">
            <body>Set the classname
	 * 
	 * @param n</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtU8ESTSEeKBFYtaGkJu3A" name="n">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtWKMCTSEeKBFYtaGkJu3A" name="getFilename" method="_Y6f1YCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vF8STSEeKBFYtaGkJu3A">
            <body>Get the filename
	 * 
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtWKMSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtWxQCTSEeKBFYtaGkJu3A" name="getCommentCount" method="_Y6f1YiTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vF8iTSEeKBFYtaGkJu3A">
            <body>Return the number of comments
	 * 
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtWxQSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtXYUCTSEeKBFYtaGkJu3A" name="getComments" method="_Y6gccCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vF8yTSEeKBFYtaGkJu3A">
            <body>Return a list of comments</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtX_YCTSEeKBFYtaGkJu3A" type="_Y2TR4STSEeKBFYtaGkJu3A" isOrdered="true" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YtX_YSTSEeKBFYtaGkJu3A" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtZNgCTSEeKBFYtaGkJu3A" name="addPublicMethod" method="_Y6gccyTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vF9CTSEeKBFYtaGkJu3A">
            <body>Add an associated public method
	 * 
	 * @param s</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtZNgSTSEeKBFYtaGkJu3A" name="s">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtaboCTSEeKBFYtaGkJu3A" name="setExtends" method="_Y6hDgCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtACTSEeKBFYtaGkJu3A">
            <body>Set what this class extends
	 * 
	 * @param extendz2</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtaboSTSEeKBFYtaGkJu3A" name="extendz2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtbCsCTSEeKBFYtaGkJu3A" name="getExtends" method="_Y6hDgiTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtASTSEeKBFYtaGkJu3A">
            <body>Get what this class extends
	 * 
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtbCsSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtbpwCTSEeKBFYtaGkJu3A" name="getClassName" method="_Y6hqkSTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtAiTSEeKBFYtaGkJu3A">
            <body>Get the classname
	 * 
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtcQ0CTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Ytc34CTSEeKBFYtaGkJu3A" name="setNoKids" method="_Y6iRoCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtAyTSEeKBFYtaGkJu3A">
            <body>Set the NOC
	 * 
	 * @param i</body>
          </ownedComment>
          <ownedParameter xmi:id="_Ytc34STSEeKBFYtaGkJu3A" name="i">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YteGACTSEeKBFYtaGkJu3A" name="setDIT" method="_Y6iRoiTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtBCTSEeKBFYtaGkJu3A">
            <body>Set the DIT
	 * 
	 * @param i</body>
          </ownedComment>
          <ownedParameter xmi:id="_YteGASTSEeKBFYtaGkJu3A" name="i">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtetECTSEeKBFYtaGkJu3A" name="getDIT" method="_Y6i4sCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6vtBSTSEeKBFYtaGkJu3A">
            <body>Get the DIT
	 * 
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_YtfUICTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_YtgiQCTSEeKBFYtaGkJu3A" name="printParamList" method="_Y6jfwCTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6wUESTSEeKBFYtaGkJu3A">
            <body>Print the parameters of each method</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_Y5fv0CTSEeKBFYtaGkJu3A" name="Node" method="_Y6enQSTSEeKBFYtaGkJu3A" raisedException="_Yt-cUCTSEeKBFYtaGkJu3A">
          <eAnnotations xmi:id="_Y5jaMCTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_Y5jaMSTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_Y5fv0STSEeKBFYtaGkJu3A" name="cu" type="_Y1G_ESTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y5gW4CTSEeKBFYtaGkJu3A" name="f">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Y5kBQCTSEeKBFYtaGkJu3A" type="_YtD2UCTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Y5lPYCTSEeKBFYtaGkJu3A" name="setmethodHash" method="_Y6i4siTSEeKBFYtaGkJu3A">
          <ownedComment xmi:id="_Y6wUECTSEeKBFYtaGkJu3A">
            <body>Set the method hashmap
	 * 
	 * @param ml</body>
          </ownedComment>
          <ownedParameter xmi:id="_Y5lPYSTSEeKBFYtaGkJu3A" name="ml" type="_Y1QwESTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_Yt0EQCTSEeKBFYtaGkJu3A" name="NodeBank">
        <ownedAttribute xmi:id="_Y56mkCTSEeKBFYtaGkJu3A" name="bank" visibility="package" type="_Y1jrACTSEeKBFYtaGkJu3A" association="_Y69vcSTSEeKBFYtaGkJu3A"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6kt4CTSEeKBFYtaGkJu3A" name="NodeBank" specification="_Yt15cCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6kt4STSEeKBFYtaGkJu3A" type="_Yt0EQCTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>bank = new ArrayList&lt;Node>();
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6lU8CTSEeKBFYtaGkJu3A" name="addNode" specification="_Y2dC4CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6lU8STSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>bank.add(n);
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6lU8iTSEeKBFYtaGkJu3A" name="printAll" specification="_Yt3HkCTSEeKBFYtaGkJu3A">
          <language>java</language>
          <body>for (Node n : bank) {

			System.out.println(&quot;Filename: &quot; + n.getFilename());
			System.out.println(&quot;Classname: &quot; + n.name);
			System.out.println(&quot;Method Count: &quot; + n.methodHash.keySet().size());
			System.out.println(&quot;Method List: &quot; + n.methodHash.keySet());
			System.out
					.println(&quot;Public Method Count: &quot; + n.publicMethods.size());
			System.out.println(&quot;Public Methods: &quot; + n.publicMethods);
			System.out.println(&quot;Comment Count: &quot; + n.getCommentCount());
			System.out.println(&quot;Depth of Inheritance &quot; + n.getDIT());
			System.out.println(&quot;Extends: &quot; + n.extendz);
			System.out.println(&quot;Number of Children &quot; + n.noKids);
			System.out.println(&quot;Parameters &quot; + n.methodHash);
			System.out.println(&quot;Number of Lines in Class: &quot;
					+ n.compUnit.getEndLine());
			System.out.println(&quot;Parameter Count: &quot;);
			n.printParamList();
			System.out.println(&quot;\r&quot;);
		}

	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6l8ACTSEeKBFYtaGkJu3A" name="getExendsList" specification="_Yt4VsCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6l8ASTSEeKBFYtaGkJu3A" name="classname">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Y6l8AiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>for (Node n : bank)
			if (n.getClassName().matches(classname))
				return n.getExtends();

		return null;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6l8AyTSEeKBFYtaGkJu3A" name="hasClass" specification="_Yt5j0CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6l8BCTSEeKBFYtaGkJu3A" name="leaf">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Y6l8BSTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>if (leaf == null || leaf.matches(&quot;&quot;))
			return false;

		for (Node n : bank)
			if (n.name.matches(leaf))
				return true;

		return false;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_Yt15cCTSEeKBFYtaGkJu3A" name="NodeBank" method="_Y6kt4CTSEeKBFYtaGkJu3A">
          <eAnnotations xmi:id="_Yt15cSTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_Yt2ggCTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_Yt2ggSTSEeKBFYtaGkJu3A" type="_Yt0EQCTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Yt3HkCTSEeKBFYtaGkJu3A" name="printAll" method="_Y6lU8iTSEeKBFYtaGkJu3A"/>
        <ownedOperation xmi:id="_Yt4VsCTSEeKBFYtaGkJu3A" name="getExendsList" method="_Y6l8ACTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Yt4VsSTSEeKBFYtaGkJu3A" name="classname">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Yt4VsiTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Yt5j0CTSEeKBFYtaGkJu3A" name="hasClass" method="_Y6l8AyTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Yt5j0STSEeKBFYtaGkJu3A" name="leaf">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_Yt5j0iTSEeKBFYtaGkJu3A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Y2dC4CTSEeKBFYtaGkJu3A" name="addNode" method="_Y6lU8CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y2dC4STSEeKBFYtaGkJu3A" name="n" type="_YtD2UCTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_Yt-cUCTSEeKBFYtaGkJu3A" name="NullCompilationUnitException">
        <generalization xmi:id="_Y5o5wCTSEeKBFYtaGkJu3A" general="_Y3UlkCTSEeKBFYtaGkJu3A"/>
        <ownedOperation xmi:id="_Yt_qcCTSEeKBFYtaGkJu3A" name="NullCompilationUnitException" visibility="package">
          <eAnnotations xmi:id="_YuARgCTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_YuARgSTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_YuA4kSTSEeKBFYtaGkJu3A" type="_Yt-cUCTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_YuCGsCTSEeKBFYtaGkJu3A" name="ParameterVisitor">
        <ownedComment xmi:id="_Y6wUEiTSEeKBFYtaGkJu3A">
          <body>Simple visitor implementation for visiting MethodDeclaration nodes.</body>
        </ownedComment>
        <generalization xmi:id="_Y5rWASTSEeKBFYtaGkJu3A" general="_Y10wwSTSEeKBFYtaGkJu3A"/>
        <ownedAttribute xmi:id="_Y58bwCTSEeKBFYtaGkJu3A" name="paramList" visibility="package" type="_Y1jrACTSEeKBFYtaGkJu3A" association="_Y7TtsSTSEeKBFYtaGkJu3A"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6qNcCTSEeKBFYtaGkJu3A" name="ParameterVisitor" specification="_YuEi8CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6qNcSTSEeKBFYtaGkJu3A" type="_YuCGsCTSEeKBFYtaGkJu3A" direction="return"/>
          <language>java</language>
          <body>paramList = new ArrayList&lt;String>();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Y6q0gCTSEeKBFYtaGkJu3A" name="visit" specification="_Y5qH4CTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y6q0gSTSEeKBFYtaGkJu3A" name="p" type="_Y1yUgSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y6q0giTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
          <language>java</language>
          <body>paramList.add(p.getId().getName());&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_YuEi8CTSEeKBFYtaGkJu3A" name="ParameterVisitor" method="_Y6qNcCTSEeKBFYtaGkJu3A">
          <eAnnotations xmi:id="_YuEi8STSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_YuEi8iTSEeKBFYtaGkJu3A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_YuEi8yTSEeKBFYtaGkJu3A" type="_YuCGsCTSEeKBFYtaGkJu3A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_Y5qH4CTSEeKBFYtaGkJu3A" name="visit" method="_Y6q0gCTSEeKBFYtaGkJu3A">
          <ownedParameter xmi:id="_Y5qH4STSEeKBFYtaGkJu3A" name="p" type="_Y1yUgSTSEeKBFYtaGkJu3A"/>
          <ownedParameter xmi:id="_Y5qH4iTSEeKBFYtaGkJu3A" name="arg" type="_Y2uIoSTSEeKBFYtaGkJu3A"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y63o0CTSEeKBFYtaGkJu3A" name="" memberEnd="_Y63o0STSEeKBFYtaGkJu3A _Y5vAYCTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y63o0STSEeKBFYtaGkJu3A" name="" type="_Yst4ECTSEeKBFYtaGkJu3A" association="_Y63o0CTSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y6428STSEeKBFYtaGkJu3A" name="" memberEnd="_Y6428iTSEeKBFYtaGkJu3A _Y5w1kCTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y6428iTSEeKBFYtaGkJu3A" name="" type="_Ys7TcCTSEeKBFYtaGkJu3A" association="_Y6428STSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y66FESTSEeKBFYtaGkJu3A" name="" memberEnd="_Y66FEiTSEeKBFYtaGkJu3A _Y5yqwCTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y66FEiTSEeKBFYtaGkJu3A" name="" type="_YtD2UCTSEeKBFYtaGkJu3A" association="_Y66FESTSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y67TMSTSEeKBFYtaGkJu3A" name="" memberEnd="_Y67TMiTSEeKBFYtaGkJu3A _Y50f8STSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y67TMiTSEeKBFYtaGkJu3A" name="" type="_YtD2UCTSEeKBFYtaGkJu3A" association="_Y67TMSTSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y68hUSTSEeKBFYtaGkJu3A" name="" memberEnd="_Y68hUiTSEeKBFYtaGkJu3A _Y52VISTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y68hUiTSEeKBFYtaGkJu3A" name="" type="_YtD2UCTSEeKBFYtaGkJu3A" association="_Y68hUSTSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y69vcSTSEeKBFYtaGkJu3A" name="" memberEnd="_Y69vciTSEeKBFYtaGkJu3A _Y56mkCTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y69vciTSEeKBFYtaGkJu3A" name="" type="_Yt0EQCTSEeKBFYtaGkJu3A" association="_Y69vcSTSEeKBFYtaGkJu3A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Y7TtsSTSEeKBFYtaGkJu3A" name="" memberEnd="_Y7TtsiTSEeKBFYtaGkJu3A _Y58bwCTSEeKBFYtaGkJu3A">
        <ownedEnd xmi:id="_Y7TtsiTSEeKBFYtaGkJu3A" name="" type="_YuCGsCTSEeKBFYtaGkJu3A" association="_Y7TtsSTSEeKBFYtaGkJu3A"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_YmU8MCTSEeKBFYtaGkJu3A" name="javax">
      <packagedElement xmi:type="uml:Package" xmi:id="_YmVjQCTSEeKBFYtaGkJu3A" name="swing">
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1ahECTSEeKBFYtaGkJu3A" name="JFileChooser"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_Y1dkYCTSEeKBFYtaGkJu3A" name="JFrame"/>
      </packagedElement>
    </packagedElement>
    <profileApplication xmi:id="_YDiYMCTSEeKBFYtaGkJu3A">
      <eAnnotations xmi:id="_YDkNYCTSEeKBFYtaGkJu3A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile"/>
    </profileApplication>
  </uml:Model>
  <UMLLabProfile:TargetLanguage xmi:id="_YDn3wCTSEeKBFYtaGkJu3A" base_Package="_X-h8YCTSEeKBFYtaGkJu3A">
    <languageName>java</languageName>
  </UMLLabProfile:TargetLanguage>
  <UMLLabProfile:Generics xmi:id="_YrtLcCTSEeKBFYtaGkJu3A" genericsValue="String" base_Element="_Yro6ACTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_YuA4kCTSEeKBFYtaGkJu3A" base_Element="_Yt_qcCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y07Y4CTSEeKBFYtaGkJu3A" base_Element="_Y015UCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y091ICTSEeKBFYtaGkJu3A" base_Element="_Y08nACTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y0_qUCTSEeKBFYtaGkJu3A" base_Element="_Y091ISTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1A4cCTSEeKBFYtaGkJu3A" base_Element="_Y0_qUSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1Fw8CTSEeKBFYtaGkJu3A" base_Element="_Y1D7wCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1G_ECTSEeKBFYtaGkJu3A" base_Element="_Y1Fw8STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1I0QCTSEeKBFYtaGkJu3A" base_Element="_Y1G_ESTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1KpcCTSEeKBFYtaGkJu3A" base_Element="_Y1I0QSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1NswCTSEeKBFYtaGkJu3A" base_Element="_Y1KpcSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1Ph8CTSEeKBFYtaGkJu3A" base_Element="_Y1NswSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1QwECTSEeKBFYtaGkJu3A" base_Element="_Y1Ph8STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1Z6ACTSEeKBFYtaGkJu3A" base_Element="_Y1QwESTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1c9UCTSEeKBFYtaGkJu3A" base_Element="_Y1ahECTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1eygCTSEeKBFYtaGkJu3A" base_Element="_Y1dkYCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1k5ICTSEeKBFYtaGkJu3A" base_Element="_Y1jrACTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1mHQCTSEeKBFYtaGkJu3A" base_Element="_Y1k5ISTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1n8cCTSEeKBFYtaGkJu3A" base_Element="_Y1muUCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y1yUgCTSEeKBFYtaGkJu3A" base_Element="_Y1n8cSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y10wwCTSEeKBFYtaGkJu3A" base_Element="_Y1yUgSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y12l8CTSEeKBFYtaGkJu3A" base_Element="_Y10wwSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y2TR4CTSEeKBFYtaGkJu3A" base_Element="_Y2SDwCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y2UgACTSEeKBFYtaGkJu3A" base_Element="_Y2TR4STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y2vWwCTSEeKBFYtaGkJu3A" base_Element="_Y2uIoSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y2xL8STSEeKBFYtaGkJu3A" base_Element="_Y2wk4CTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Annotations xmi:id="_Y3N34CTSEeKBFYtaGkJu3A" base_Element="_Y2wk4CTSEeKBFYtaGkJu3A">
    <annotations xmi:id="_Y3QUICTSEeKBFYtaGkJu3A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Reference xmi:id="_Y5BOsCTSEeKBFYtaGkJu3A" base_Element="_Y3UlkCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5VXwCTSEeKBFYtaGkJu3A" base_Element="_Y5UwsCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Annotations xmi:id="_Y5Wl4CTSEeKBFYtaGkJu3A" base_Element="_Y5UwsCTSEeKBFYtaGkJu3A">
    <annotations xmi:id="_Y5Wl4STSEeKBFYtaGkJu3A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Generics xmi:id="_Y5mdgCTSEeKBFYtaGkJu3A" genericsValue="String, List" base_Element="_Y5lPYSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5qu8CTSEeKBFYtaGkJu3A" base_Element="_Y5qH4CTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Annotations xmi:id="_Y5qu8STSEeKBFYtaGkJu3A" base_Element="_Y5qH4CTSEeKBFYtaGkJu3A">
    <annotations xmi:id="_Y5rWACTSEeKBFYtaGkJu3A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5tyQCTSEeKBFYtaGkJu3A" base_Element="_Y5tLMCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5uZUCTSEeKBFYtaGkJu3A" base_Element="_Y5tyQSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5vAYSTSEeKBFYtaGkJu3A" base_Element="_Y5vAYCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5wOgCTSEeKBFYtaGkJu3A" base_Element="_Y5vncCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Generics xmi:id="_Y5xcoCTSEeKBFYtaGkJu3A" genericsValue="String, List" base_Element="_Y5w1kCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5yDsCTSEeKBFYtaGkJu3A" base_Element="_Y5w1kCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5zR0CTSEeKBFYtaGkJu3A" base_Element="_Y5yqwCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y5z44CTSEeKBFYtaGkJu3A" base_Element="_Y5zR0STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y50f8CTSEeKBFYtaGkJu3A" base_Element="_Y5z44STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Generics xmi:id="_Y51uECTSEeKBFYtaGkJu3A" genericsValue="String, List" base_Element="_Y50f8STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y52VICTSEeKBFYtaGkJu3A" base_Element="_Y50f8STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Generics xmi:id="_Y53jQCTSEeKBFYtaGkJu3A" genericsValue="String" base_Element="_Y52VISTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y53jQSTSEeKBFYtaGkJu3A" base_Element="_Y52VISTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y54KUSTSEeKBFYtaGkJu3A" base_Element="_Y54KUCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y54xYSTSEeKBFYtaGkJu3A" base_Element="_Y54xYCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y55YcSTSEeKBFYtaGkJu3A" base_Element="_Y55YcCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Generics xmi:id="_Y57NoCTSEeKBFYtaGkJu3A" genericsValue="Node" base_Element="_Y56mkCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y570sCTSEeKBFYtaGkJu3A" base_Element="_Y56mkCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Generics xmi:id="_Y59p4CTSEeKBFYtaGkJu3A" genericsValue="String" base_Element="_Y58bwCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Y59p4STSEeKBFYtaGkJu3A" base_Element="_Y58bwCTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y6428CTSEeKBFYtaGkJu3A" base_Element="_Y63o0CTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y66FECTSEeKBFYtaGkJu3A" base_Element="_Y6428STSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y67TMCTSEeKBFYtaGkJu3A" base_Element="_Y66FESTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y68hUCTSEeKBFYtaGkJu3A" base_Element="_Y67TMSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y69vcCTSEeKBFYtaGkJu3A" base_Element="_Y68hUSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y7TtsCTSEeKBFYtaGkJu3A" base_Element="_Y69vcSTSEeKBFYtaGkJu3A"/>
  <UMLLabProfile:Reference xmi:id="_Y7eFwCTSEeKBFYtaGkJu3A" base_Element="_Y7TtsSTSEeKBFYtaGkJu3A"/>
</xmi:XMI>
