< prev index next >

make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -45,15 +45,15 @@
     String package_path = "sun/awt/X11";
     String sizerFileName = "sizer.c";
     String defaultBaseClass = "XWrapperBase";
 
     String compile_options = "-lX11";
-    static Hashtable symbolTable = new Hashtable();
-    static Hashtable sizeTable32bit = new Hashtable();
-    static Hashtable sizeTable64bit = new Hashtable();
-    static Hashtable knownSizes32 = new Hashtable();
-    static Hashtable knownSizes64 = new Hashtable();
+    static Hashtable<String, BaseType> symbolTable = new Hashtable<>();
+    static Hashtable<String, String> sizeTable32bit = new Hashtable<>();
+    static Hashtable<String, String> sizeTable64bit = new Hashtable<>();
+    static Hashtable<String, Integer> knownSizes32 = new Hashtable<>();
+    static Hashtable<String, Integer> knownSizes64 = new Hashtable<>();
     static {
 /*
         knownSizes64.put("", Integer.valueOf());
         knownSizes32.put("", Integer.valueOf());
 */

@@ -389,11 +389,11 @@
                 direction = 2;
             } else if ("alias".equals(mod)) {
                 alias = true;
                 aliasName = attributes[4];
             } else if (type == TYPE_ARRAY || type == TYPE_PTR || type == TYPE_STRUCT) {
-                referencedType = (BaseType)symbolTable.get(mod);
+                referencedType = symbolTable.get(mod);
                 if (referencedType == null) {
                     log.warning("Can't find type for name " + mod);
                 }
                 if (attributes.length > 4) { // array length
                     try {

@@ -455,11 +455,11 @@
         }
     }
 
     private static class StructType extends BaseType {
 
-        Vector members;
+        Vector<BaseType> members;
         String description;
         boolean packed;
         int size;
         String baseClass, interfaces;
         boolean isInterface;

@@ -470,11 +470,11 @@
          * Description is used for name and type definition and has the following format:
          * structName [ '[' base classe ']' ] [ '{' interfaces '}' ] [ '|' javaClassName ]
          */
         public StructType(String _desc)
         {
-            members = new Vector();
+            members = new Vector<>();
             parseDescription(_desc);
         }
         public int getNumFields()
         {
             return members.size();

@@ -493,11 +493,11 @@
         public String getDescription()
         {
             return description;
         }
 
-        public Enumeration getMembers()
+        public Enumeration<BaseType> getMembers()
         {
             return members.elements();
         }
 
         public void addMember(BaseType tp)

@@ -543,12 +543,12 @@
 
         /**
          * Returns String containing Java code calculating size of the structure depending on the data model
          */
         public String getSize() {
-            String s32 = (String) WrapperGenerator.sizeTable32bit.get(getName());
-            String s64 = (String) WrapperGenerator.sizeTable64bit.get(getName());
+            String s32 = WrapperGenerator.sizeTable32bit.get(getName());
+            String s64 = WrapperGenerator.sizeTable64bit.get(getName());
             if (s32 == null || s64 == null) {
                 return (s32 == null)?(s64):(s32);
             }
             if (s32.equals(s64)) {
                 return s32;

@@ -556,12 +556,12 @@
                 return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[] {s32, s64});
             }
         }
         public String getOffset(AtomicType atp) {
             String key = getName()+"."+(atp.isAlias() ? atp.getAliasName() : atp.getName());
-            String s64 = (String) WrapperGenerator.sizeTable64bit.get(key);
-            String s32 = (String) WrapperGenerator.sizeTable32bit.get(key);
+            String s64 = WrapperGenerator.sizeTable64bit.get(key);
+            String s32 = WrapperGenerator.sizeTable32bit.get(key);
             if (s32 == null || s64 == null) {
                 return (s32 == null)?(s64):(s32);
             }
             if (s32.equals(s64)) {
                 return s32;

@@ -571,20 +571,20 @@
         }
     }
 
     private static class FunctionType extends BaseType {
 
-        Vector args;
+        Vector<BaseType> args;
         String description;
         boolean packed;
         String returnType;
 
         int alignment;
 
         public FunctionType(String _desc)
         {
-            args = new Vector();
+            args = new Vector<>();
             description = _desc;
             setName(_desc);
         }
         boolean isVoid() {
             return (returnType == null);

@@ -616,11 +616,11 @@
         public String getDescription()
         {
             return description;
         }
 
-        public Collection getArguments()
+        public Collection<BaseType> getArguments()
         {
             return args;
         }
         public void addArgument(BaseType tp)
         {

@@ -651,40 +651,40 @@
         }
     }
     public String getOffsets(StructType stp,AtomicType atp, boolean wide)
     {
         String key = stp.getName()+"."+atp.getName();
-        return wide == true ? (String) sizeTable64bit.get(key) : (String) sizeTable32bit.get(key);
+        return wide == true ? sizeTable64bit.get(key) : sizeTable32bit.get(key);
     }
 
     public String getStructSize(StructType stp, boolean wide)
     {
-        return wide == true ? (String) sizeTable64bit.get(stp.getName()) : (String) sizeTable32bit.get(stp.getName());
+        return wide == true ? sizeTable64bit.get(stp.getName()) : sizeTable32bit.get(stp.getName());
     }
 
     public int getLongSize(boolean wide)
     {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("long") : (String)sizeTable32bit.get("long"));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get("long") : sizeTable32bit.get("long"));
     }
 
     public int getPtrSize(boolean wide)
     {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("ptr") : (String)sizeTable32bit.get("ptr"));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get("ptr") : sizeTable32bit.get("ptr"));
     }
     public int getBoolSize(boolean wide) {
         return getOrdinalSize("Bool", wide);
     }
     public int getOrdinalSize(String ordinal, boolean wide) {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get(ordinal) : (String)sizeTable32bit.get(ordinal));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get(ordinal) : sizeTable32bit.get(ordinal));
     }
 
     public void writeToString(StructType stp, PrintWriter pw) {
         int type;
         pw.println("\n\n\tString getName() {\n\t\treturn \"" + stp.getName()+ "\"; \n\t}");
         pw.println("\n\n\tString getFieldsAsString() {\n\t\tStringBuilder ret = new StringBuilder(" + stp.getNumFields() * 40 + ");\n");
 
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
             String name = tp.getName().replace('.', '_');
             if ((name != null) && (name.length() > 0))

@@ -716,11 +716,11 @@
         if (!stp.getIsInterface()) {
             prefix = "\t\tabstract ";
         } else {
             prefix = "\t";
         }
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
             String name = tp.getName().replace('.','_');
             if ((name != null) && (name.length() > 0))

@@ -751,11 +751,11 @@
         String s_size_32 = getStructSize(stp, false);
         String s_size_64 = getStructSize(stp, true);
         int acc_size_32 = 0;
         int acc_size_64 = 0;
         String s_log = (generateLog?"log.finest(\"\");":"");
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
             String name = tp.getName().replace('.','_');
             String pref = "\tpublic " ;

@@ -944,11 +944,11 @@
             pw.println("import jdk.internal.misc.Unsafe;\n");
             pw.println("class " + ft.getName() + " {");
             pw.println("\tprivate static Unsafe unsafe = XlibWrapper.unsafe;");
             pw.println("\tprivate boolean __executed = false;");
             pw.println("\tprivate boolean __disposed = false;");
-            Iterator iter = ft.getArguments().iterator();
+            Iterator<BaseType> iter = ft.getArguments().iterator();
             while (iter.hasNext()) {
                 AtomicType at = (AtomicType)iter.next();
                 if (at.isIn()) {
                     pw.println("\t" + at.getJavaType() + " _" + at.getName() + ";");
                 } else {

@@ -1108,12 +1108,12 @@
         }
     }
 
     public void writeJavaWrapperClass(String outputDir) {
         try {
-            for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
-                BaseType tp = (BaseType) e.nextElement();
+            for (Enumeration<BaseType> e = symbolTable.elements() ; e.hasMoreElements() ;) {
+                BaseType tp = e.nextElement();
                 if (tp instanceof StructType) {
                     StructType st = (StructType) tp;
                     writeWrapper(outputDir, st);
                 } else if (tp instanceof FunctionType) {
                     writeFunctionCallWrapper(outputDir, (FunctionType)tp);

@@ -1130,11 +1130,11 @@
         int type;
         int i=0;
         int j=0;
         BaseType tp;
         StructType stp;
-        Enumeration eo;
+        Enumeration<BaseType> eo;
 
         try {
 
             FileOutputStream fs =  new FileOutputStream(file);
             PrintWriter pw = new PrintWriter(fs);

@@ -1156,11 +1156,11 @@
             pw.println("} PropMwmHints;\n");
 
             pw.println("\n\nint main(){");
             j=0;
             for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
-                tp = (BaseType) eo.nextElement();
+                tp = eo.nextElement();
                 if (tp instanceof StructType)
                 {
                     stp = (StructType) tp;
                     if (!stp.getIsInterface()) {
                         pw.println(stp.getName()+"  temp"+ j + ";\n");

@@ -1179,18 +1179,18 @@
             pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
 
             for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
 
 
-                tp = (BaseType) eo.nextElement();
+                tp = eo.nextElement();
                 if (tp instanceof StructType)
                 {
                     stp = (StructType) tp;
                     if (stp.getIsInterface()) {
                         continue;
                     }
-                    for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+                    for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
                         AtomicType atp = (AtomicType) e.nextElement();
                         if (atp.isAlias()) continue;
                         pw.println("printf(\""+ stp.getName() + "." + atp.getName() + "\t%d\\n\""+
                                    ",(int)((unsigned long ) &temp"+j+"."+atp.getName()+"- (unsigned long ) &temp" + j + ")  );");
 

@@ -1275,11 +1275,11 @@
                         System.out.println("Cannot find " + struct_name);
                     }
 
                 }
                 else  if (line != null) {
-                    BaseType bt = (BaseType) symbolTable.get(line);
+                    BaseType bt = symbolTable.get(line);
                     if (bt == null) {
                         if (line.startsWith("!")) {
                             FunctionType ft = new FunctionType(line);
                             ft.setName(line);
                             symbolTable.put(ft.getName(),ft);
< prev index next >