diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java @ 16908:d3f282a9e287

Truffle-DSL: optimize import generation.
author Christian Humer <christian.humer@gmail.com>
date Sat, 23 Aug 2014 19:31:13 +0200
parents 23415229349b
children
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java	Sat Aug 23 19:31:09 2014 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java	Sat Aug 23 19:31:13 2014 +0200
@@ -22,32 +22,32 @@
  */
 package com.oracle.truffle.dsl.processor.java.model;
 
-import javax.lang.model.type.*;
+import java.util.*;
 
 public class CodeImport implements Comparable<CodeImport> {
 
-    private final TypeMirror importType;
-    private final String importString;
+    private final String packageName;
+    private final String symbolName;
     private final boolean staticImport;
 
-    public CodeImport(TypeMirror importedType, String importString, boolean staticImport) {
-        this.importType = importedType;
-        this.importString = importString;
+    public CodeImport(String packageName, String symbolName, boolean staticImport) {
+        this.packageName = packageName;
+        this.symbolName = symbolName;
         this.staticImport = staticImport;
     }
 
-    public TypeMirror getImportType() {
-        return importType;
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public String getSymbolName() {
+        return symbolName;
     }
 
     public boolean isStaticImport() {
         return staticImport;
     }
 
-    public String getImportString() {
-        return importString;
-    }
-
     @Override
     public int compareTo(CodeImport o) {
         if (staticImport && !o.staticImport) {
@@ -55,7 +55,11 @@
         } else if (!staticImport && o.staticImport) {
             return -1;
         } else {
-            return importString.compareTo(o.getImportString());
+            int result = getPackageName().compareTo(o.getPackageName());
+            if (result == 0) {
+                return getSymbolName().compareTo(o.getSymbolName());
+            }
+            return result;
         }
     }
 
@@ -65,36 +69,16 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((importString == null) ? 0 : importString.hashCode());
-        result = prime * result + (staticImport ? 1231 : 1237);
-        return result;
+        return Objects.hash(packageName, symbolName, staticImport);
     }
 
     @Override
     public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
+        if (obj instanceof CodeImport) {
+            CodeImport otherImport = (CodeImport) obj;
+            return getPackageName().equals(otherImport.getPackageName()) && getSymbolName().equals(otherImport.getSymbolName()) //
+                            && staticImport == otherImport.staticImport;
         }
-        CodeImport other = (CodeImport) obj;
-        if (importString == null) {
-            if (other.importString != null) {
-                return false;
-            }
-        } else if (!importString.equals(other.importString)) {
-            return false;
-        }
-        if (staticImport != other.staticImport) {
-            return false;
-        }
-        return true;
+        return super.equals(obj);
     }
-
 }