jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java
changeset 46174 5611d2529b49
parent 44797 8b3b3b911b8a
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java	Tue Aug 08 22:52:41 2017 +0000
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/CHECKCAST.java	Sun Aug 13 21:10:40 2017 -0700
@@ -21,64 +21,68 @@
 
 package com.sun.org.apache.bcel.internal.generic;
 
-import com.sun.org.apache.bcel.internal.ExceptionConstants;
+import com.sun.org.apache.bcel.internal.ExceptionConst;
+
 /**
  * CHECKCAST - Check whether object is of given type
  * <PRE>Stack: ..., objectref -&gt; ..., objectref</PRE>
  *
- * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
+ * @version $Id: CHECKCAST.java 1747278 2016-06-07 17:28:43Z britter $
  */
-public class CHECKCAST extends CPInstruction
-  implements LoadClass, ExceptionThrower, StackProducer, StackConsumer {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  CHECKCAST() {}
+public class CHECKCAST extends CPInstruction implements LoadClass, ExceptionThrower, StackProducer,
+        StackConsumer {
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    CHECKCAST() {
+    }
+
 
-  /** Check whether object is of given type
-   * @param n index to class in constant pool
-   */
-  public CHECKCAST(int index) {
-    super(com.sun.org.apache.bcel.internal.Constants.CHECKCAST, index);
-  }
+    /** Check whether object is of given type
+     * @param index index to class in constant pool
+     */
+    public CHECKCAST(final int index) {
+        super(com.sun.org.apache.bcel.internal.Const.CHECKCAST, index);
+    }
+
 
-  /** @return exceptions this instruction may cause
-   */
-  public Class[] getExceptions() {
-    Class[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
+    /** @return exceptions this instruction may cause
+     */
+    @Override
+    public Class<?>[] getExceptions() {
+        return ExceptionConst.createExceptions(ExceptionConst.EXCS.EXCS_CLASS_AND_INTERFACE_RESOLUTION,
+            ExceptionConst.CLASS_CAST_EXCEPTION);
+    }
+
 
-    System.arraycopy(ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0,
-                     cs, 0, ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
-    cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] =
-      ExceptionConstants.CLASS_CAST_EXCEPTION;
-    return cs;
-  }
+    @Override
+    public ObjectType getLoadClassType( final ConstantPoolGen cpg ) {
+        Type t = getType(cpg);
+        if (t instanceof ArrayType) {
+            t = ((ArrayType) t).getBasicType();
+        }
+        return (t instanceof ObjectType) ? (ObjectType) t : null;
+    }
 
-  public ObjectType getLoadClassType(ConstantPoolGen cpg) {
-    Type t = getType(cpg);
-
-    if(t instanceof ArrayType)
-      t = ((ArrayType) t).getBasicType();
-
-    return (t instanceof ObjectType)? (ObjectType) t : null;
-  }
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitLoadClass(this);
-    v.visitExceptionThrower(this);
-    v.visitStackProducer(this);
-    v.visitStackConsumer(this);
-    v.visitTypedInstruction(this);
-    v.visitCPInstruction(this);
-    v.visitCHECKCAST(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    @Override
+    public void accept( final Visitor v ) {
+        v.visitLoadClass(this);
+        v.visitExceptionThrower(this);
+        v.visitStackProducer(this);
+        v.visitStackConsumer(this);
+        v.visitTypedInstruction(this);
+        v.visitCPInstruction(this);
+        v.visitCHECKCAST(this);
+    }
 }