< 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 >