You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by bw...@apache.org on 2022/02/20 18:17:34 UTC
[netbeans] branch master updated: update VariableMirrorTranslator to bring it up to standards (#3647)
This is an automated email from the ASF dual-hosted git repository.
bwalker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new de854f8 update VariableMirrorTranslator to bring it up to standards (#3647)
de854f8 is described below
commit de854f82fea30533dae7f462bb1886e4405921bb
Author: Brad Walker <bw...@musings.com>
AuthorDate: Sun Feb 20 13:17:21 2022 -0500
update VariableMirrorTranslator to bring it up to standards (#3647)
I initially started cleaning up VariableMirrorTranslator.java as part of
some mass deprecation cleanup work I am doing.
The changes for handling the autobox/unbox of the floating-point class turned
into a general cleanup of the VariableMirrorTranslator class.
- updated autobox/unbox
- using multi-catch now
- using strings in switch
- update a couple of places should be using diamond operator
---
.../jpda/models/VariableMirrorTranslator.java | 149 ++++++++++-----------
1 file changed, 70 insertions(+), 79 deletions(-)
diff --git a/java/debugger.jpda/src/org/netbeans/modules/debugger/jpda/models/VariableMirrorTranslator.java b/java/debugger.jpda/src/org/netbeans/modules/debugger/jpda/models/VariableMirrorTranslator.java
index dbbbd7a..26612f0 100644
--- a/java/debugger.jpda/src/org/netbeans/modules/debugger/jpda/models/VariableMirrorTranslator.java
+++ b/java/debugger.jpda/src/org/netbeans/modules/debugger/jpda/models/VariableMirrorTranslator.java
@@ -87,12 +87,12 @@ public class VariableMirrorTranslator {
private static final Logger logger = Logger.getLogger(VariableMirrorTranslator.class.getName());
- private static final Object NO_MIRROR = new String("NO_MIRROR");
+ private static final Object NO_MIRROR = "NO_MIRROR";
private VariableMirrorTranslator() {}
static Object createMirrorObject(Value value) {
- return createMirrorObject(value, new HashMap<Value, Object>());
+ return createMirrorObject(value, new HashMap<>());
}
private static Object createMirrorObject(Value value, Map<Value, Object> mirrorsMap) {
@@ -112,33 +112,33 @@ public class VariableMirrorTranslator {
return ShortenedStrings.getStringWithLengthControl((StringReference) value);
}
return createMirrorObject((ObjectReference) value, (ReferenceType) type, clazz, mirrorsMap);
- } catch (ClassNotFoundException ex) {
- } catch (ClassNotPreparedExceptionWrapper ex) {
+ } catch (ClassNotFoundException | ClassNotPreparedExceptionWrapper ex) {
}
} else {
- if ("boolean".equals(typeStr)) {
- return Boolean.valueOf(((BooleanValue) value).booleanValue());
- } else if ("byte".equals(typeStr)) {
- return new Byte(((ByteValue) value).byteValue());
- } else if ("char".equals(typeStr)) {
- return new Character(((CharValue) value).charValue());
- } else if ("short".equals(typeStr)) {
- return new Short(((ShortValue) value).shortValue());
- } else if ("int".equals(typeStr)) {
- return new Integer(((IntegerValue) value).intValue());
- } else if ("long".equals(typeStr)) {
- return new Long(((LongValue) value).longValue());
- } else if ("float".equals(typeStr)) {
- return new Float(((FloatValue) value).floatValue());
- } else if ("double".equals(typeStr)) {
- return new Double(((DoubleValue) value).doubleValue());
- } else {
- throw new IllegalArgumentException("Unknown primitive type: "+typeStr+" from "+type);
+ if (null == typeStr) {
+ throw new IllegalArgumentException("Unknown primitive type: " + typeStr + " from " + type);
+ } else switch (typeStr) {
+ case "boolean":
+ return ((BooleanValue) value).booleanValue();
+ case "byte":
+ return ((ByteValue) value).byteValue();
+ case "char":
+ return ((CharValue) value).charValue();
+ case "short":
+ return ((ShortValue) value).shortValue();
+ case "int":
+ return ((IntegerValue) value).intValue();
+ case "long":
+ return ((LongValue) value).longValue();
+ case "float":
+ return ((FloatValue) value).floatValue();
+ case "double":
+ return ((DoubleValue) value).doubleValue();
+ default:
+ throw new IllegalArgumentException("Unknown primitive type: "+typeStr+" from "+type);
}
}
- } catch (InternalExceptionWrapper ex) {
- } catch (VMDisconnectedExceptionWrapper ex) {
- } catch (ObjectCollectedExceptionWrapper ex) {
+ } catch (InternalExceptionWrapper | VMDisconnectedExceptionWrapper | ObjectCollectedExceptionWrapper ex) {
}
return null;
}
@@ -156,17 +156,7 @@ public class VariableMirrorTranslator {
Object newInstance = constructor.newInstance();
return newInstance;
- } catch (InstantiationException ex) {
- logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
- } catch (IllegalAccessException ex) {
- logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
- } catch (IllegalArgumentException ex) {
- logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
- } catch (InvocationTargetException ex) {
- logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
- } catch (NoSuchMethodException ex) {
- logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
- } catch (SecurityException ex) {
+ } catch (ReflectiveOperationException | IllegalArgumentException | SecurityException ex) {
logger.log(Level.INFO, "Problem while creating a pristine instance of "+clazz, ex);
}
return null;
@@ -235,7 +225,7 @@ public class VariableMirrorTranslator {
}
mirrorsMap.put(value, newInstance);
List<Field> fields = ReferenceTypeWrapper.allFields0(type);
- List<Field> fieldsToAskFor = new ArrayList<Field>();
+ List<Field> fieldsToAskFor = new ArrayList<>();
for (Field f : fields) {
if (!f.isStatic()) {
fieldsToAskFor.add(f);
@@ -322,7 +312,7 @@ public class VariableMirrorTranslator {
private static Map<Field, Value> getFieldValues(ObjectReference value, ReferenceType type, String... names) throws InternalExceptionWrapper, VMDisconnectedExceptionWrapper, ObjectCollectedExceptionWrapper, ClassNotPreparedExceptionWrapper {
final int n = names.length;
- List<Field> fieldsToAskFor = new ArrayList<Field>(n);
+ List<Field> fieldsToAskFor = new ArrayList<>(n);
for (String name : names) {
Field field = ReferenceTypeWrapper.fieldByName(type, name);
if (field == null) {
@@ -377,18 +367,10 @@ public class VariableMirrorTranslator {
return createValueFromMirror(mirror, clazz, isObject, vm, threadReference);
- } catch (IncompatibleThreadStateException ex) {
+ } catch (IncompatibleThreadStateException | UnsupportedOperationExceptionWrapper | PropertyVetoException ex) {
InvalidObjectException ioex = new InvalidObjectException(ex.getLocalizedMessage());
ioex.initCause(ex);
throw ioex;
- } catch (UnsupportedOperationExceptionWrapper ex) {
- InvalidObjectException ioex = new InvalidObjectException(ex.getLocalizedMessage());
- ioex.initCause(ex);
- throw ioex;
- } catch (PropertyVetoException pvex) {
- InvalidObjectException ioex = new InvalidObjectException(pvex.getLocalizedMessage());
- ioex.initCause(pvex);
- throw ioex;
} finally {
if (invoking) {
currentThread.notifyMethodInvokeDone();
@@ -407,28 +389,28 @@ public class VariableMirrorTranslator {
boolean isPrimitive = clazz.isPrimitive();
if (!isObject || isPrimitive) { // Primitive type
if (Boolean.TYPE.equals(clazz) || Boolean.class.equals(clazz)) {
- return vm.mirrorOf(((Boolean) mirror).booleanValue());
+ return vm.mirrorOf(((Boolean) mirror));
}
if (Byte.TYPE.equals(clazz) || Byte.class.equals(clazz)) {
- return vm.mirrorOf(((Byte) mirror).byteValue());
+ return vm.mirrorOf(((Byte) mirror));
}
if (Character.TYPE.equals(clazz) || Character.class.equals(clazz)) {
- return vm.mirrorOf(((Character) mirror).charValue());
+ return vm.mirrorOf(((Character) mirror));
}
if (Short.TYPE.equals(clazz) || Short.class.equals(clazz)) {
- return vm.mirrorOf(((Short) mirror).shortValue());
+ return vm.mirrorOf(((Short) mirror));
}
if (Integer.TYPE.equals(clazz) || Integer.class.equals(clazz)) {
- return vm.mirrorOf(((Integer) mirror).intValue());
+ return vm.mirrorOf(((Integer) mirror));
}
if (Long.TYPE.equals(clazz) || Long.class.equals(clazz)) {
- return vm.mirrorOf(((Long) mirror).longValue());
+ return vm.mirrorOf(((Long) mirror));
}
if (Float.TYPE.equals(clazz) || Float.class.equals(clazz)) {
- return vm.mirrorOf(((Float) mirror).floatValue());
+ return vm.mirrorOf(((Float) mirror));
}
if (Double.TYPE.equals(clazz) || Double.class.equals(clazz)) {
- return vm.mirrorOf(((Double) mirror).doubleValue());
+ return vm.mirrorOf(((Double) mirror));
}
throw new InvalidObjectException("Unknown primitive type "+clazz);
} else {
@@ -464,7 +446,7 @@ public class VariableMirrorTranslator {
throw ioex;
}
List<Field> fields = ReferenceTypeWrapper.allFields0(type);
- List<Field> fieldsToSet = new ArrayList<Field>();
+ List<Field> fieldsToSet = new ArrayList<>();
for (Field f : fields) {
if (!f.isStatic()) {
fieldsToSet.add(f);
@@ -483,10 +465,6 @@ public class VariableMirrorTranslator {
field.setAccessible(true);
fm = field.get(mirror);
fieldType = field.getType();
- //} catch (NoSuchFieldException nsfex) {
- // InvalidObjectException ioex = new InvalidObjectException("No field "+name+" of class "+clazz);
- // ioex.initCause(nsfex);
- // throw ioex;
} catch (SecurityException seex) {
InvalidObjectException ioex = new InvalidObjectException("Retrieving field "+name+" of class "+clazz);
ioex.initCause(seex);
@@ -652,27 +630,41 @@ public class VariableMirrorTranslator {
}
private static Type boxType(Type t) {
+ Type rval = t;
+
if (t instanceof ClassType) {
- String name = ((ClassType) t).name();
- if (name.equals("java.lang.Boolean")) {
- t = t.virtualMachine().mirrorOf(true).type();
- } else if (name.equals("java.lang.Byte")) {
- t = t.virtualMachine().mirrorOf((byte) 10).type();
- } else if (name.equals("java.lang.Character")) {
- t = t.virtualMachine().mirrorOf('a').type();
- } else if (name.equals("java.lang.Integer")) {
- t = t.virtualMachine().mirrorOf(10).type();
- } else if (name.equals("java.lang.Long")) {
- t = t.virtualMachine().mirrorOf(10l).type();
- } else if (name.equals("java.lang.Short")) {
- t = t.virtualMachine().mirrorOf((short)10).type();
- } else if (name.equals("java.lang.Float")) {
- t = t.virtualMachine().mirrorOf(10f).type();
- } else if (name.equals("java.lang.Double")) {
- t = t.virtualMachine().mirrorOf(10.0).type();
+ String name = ((ClassType)t).name();
+
+ switch (name) {
+ case "java.lang.Boolean":
+ rval = t.virtualMachine().mirrorOf(true).type();
+ break;
+ case "java.lang.Byte":
+ rval = t.virtualMachine().mirrorOf((byte) 10).type();
+ break;
+ case "java.lang.Character":
+ rval = t.virtualMachine().mirrorOf('a').type();
+ break;
+ case "java.lang.Integer":
+ rval = t.virtualMachine().mirrorOf(10).type();
+ break;
+ case "java.lang.Long":
+ rval = t.virtualMachine().mirrorOf(10l).type();
+ break;
+ case "java.lang.Short":
+ rval = t.virtualMachine().mirrorOf((short)10).type();
+ break;
+ case "java.lang.Float":
+ rval = t.virtualMachine().mirrorOf(10f).type();
+ break;
+ case "java.lang.Double":
+ rval = t.virtualMachine().mirrorOf(10.0).type();
+ break;
+ default:
+ break;
}
}
- return t;
+ return rval;
}
private static ObjectReference getDeclaredOrInheritedField(ClassType clazz, String name, VirtualMachine vm, ThreadReference thread) throws InternalExceptionWrapper, VMDisconnectedExceptionWrapper, ClassNotPreparedExceptionWrapper, ClassNotLoadedException, ObjectCollectedExceptionWrapper, IncompatibleThreadStateException, UnsupportedOperationExceptionWrapper, InvalidTypeException {
@@ -702,5 +694,4 @@ public class VariableMirrorTranslator {
return null;
}
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists