avoid-using-native-code.xmi 8.13 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?xml version="1.0" encoding="ASCII"?>
<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="AvoidUsingNativeCode">
  <ownedElements name="(default package)">
    <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="SomeJNIClass">
      <modifier visibility="public"/>
      <bodyDeclarations xsi:type="java:ConstructorDeclaration" originalCompilationUnit="//@compilationUnits.0" name="SomeJNIClass">
        <modifier visibility="public"/>
        <body originalCompilationUnit="//@compilationUnits.0">
          <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.0">
            <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.0" method="//@ownedElements.1/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0">
              <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;nativelib&quot;"/>
              <expression xsi:type="java:TypeAccess" type="//@ownedElements.1/@ownedPackages.0/@ownedElements.0"/>
            </expression>
          </statements>
        </body>
      </bodyDeclarations>
      <bodyDeclarations xsi:type="java:Initializer" originalCompilationUnit="//@compilationUnits.0">
        <modifier static="true"/>
        <body originalCompilationUnit="//@compilationUnits.0">
          <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.0">
            <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.0" method="//@ownedElements.1/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0">
              <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;nativelib&quot;"/>
              <expression xsi:type="java:TypeAccess" type="//@ownedElements.1/@ownedPackages.0/@ownedElements.0"/>
            </expression>
          </statements>
        </body>
      </bodyDeclarations>
      <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="invalidCallsInMethod">
        <modifier visibility="public"/>
        <body originalCompilationUnit="//@compilationUnits.0">
          <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.0">
            <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.0" method="//@ownedElements.1/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0">
              <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;nativelib&quot;"/>
              <expression xsi:type="java:TypeAccess" type="//@ownedElements.1/@ownedPackages.0/@ownedElements.0"/>
            </expression>
          </statements>
        </body>
        <thrownExceptions type="//@ownedElements.1/@ownedPackages.0/@ownedElements.4"/>
        <thrownExceptions type="//@ownedElements.1/@ownedPackages.0/@ownedElements.8"/>
        <returnType type="//@orphanTypes.5"/>
      </bodyDeclarations>
    </ownedElements>
  </ownedElements>
  <ownedElements name="java" proxy="true">
    <ownedPackages name="lang" proxy="true">
      <ownedElements xsi:type="java:ClassDeclaration" name="System" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression //@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@expression //@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@body/@statements.0/@expression/@expression">
        <bodyDeclarations xsi:type="java:MethodDeclaration" name="loadLibrary" proxy="true" usages="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression //@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression //@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@body/@statements.0/@expression">
          <parameters name="arg0" proxy="true">
            <type type="//@ownedElements.1/@ownedPackages.0/@ownedElements.1"/>
          </parameters>
        </bodyDeclarations>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="String" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type">
        <superInterfaces type="//@ownedElements.1/@ownedPackages.1/@ownedElements.0"/>
        <superInterfaces type="//@ownedElements.1/@ownedPackages.0/@ownedElements.2"/>
        <superInterfaces type="//@ownedElements.1/@ownedPackages.0/@ownedElements.3"/>
      </ownedElements>
      <ownedElements xsi:type="java:InterfaceDeclaration" name="Comparable" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.1/@superInterfaces.1">
        <typeParameters name="T" proxy="true"/>
      </ownedElements>
      <ownedElements xsi:type="java:InterfaceDeclaration" name="CharSequence" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.1/@superInterfaces.2"/>
      <ownedElements xsi:type="java:ClassDeclaration" name="SecurityException" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@thrownExceptions.0">
        <superClass type="//@ownedElements.1/@ownedPackages.0/@ownedElements.5"/>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="RuntimeException" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.4/@superClass">
        <superClass type="//@ownedElements.1/@ownedPackages.0/@ownedElements.6"/>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="Exception" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.5/@superClass //@ownedElements.1/@ownedPackages.0/@ownedElements.9/@superClass">
        <superClass type="//@ownedElements.1/@ownedPackages.0/@ownedElements.7"/>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="Throwable" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.6/@superClass">
        <superInterfaces type="//@ownedElements.1/@ownedPackages.1/@ownedElements.0"/>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="NoSuchMethodException" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@thrownExceptions.1">
        <superClass type="//@ownedElements.1/@ownedPackages.0/@ownedElements.9"/>
      </ownedElements>
      <ownedElements xsi:type="java:ClassDeclaration" name="ReflectiveOperationException" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.8/@superClass">
        <superClass type="//@ownedElements.1/@ownedPackages.0/@ownedElements.6"/>
      </ownedElements>
    </ownedPackages>
    <ownedPackages name="io" proxy="true">
      <ownedElements xsi:type="java:InterfaceDeclaration" name="Serializable" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.1/@superInterfaces.0 //@ownedElements.1/@ownedPackages.0/@ownedElements.7/@superInterfaces.0"/>
    </ownedPackages>
  </ownedElements>
  <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
  <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long"/>
  <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
  <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
  <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
  <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@returnType"/>
  <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
  <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
  <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
  <compilationUnits name="SomeJNIClass.java" originalFilePath="C:\Users\Alexis\eclipse-workspace\AvoidUsingNativeCode\src\SomeJNIClass.java" types="//@ownedElements.0/@ownedElements.0"/>
</java:Model>