1 19 20 package jode.expr; 21 import jode.type.Type; 22 import jode.type.ArrayType; 23 import jode.decompiler.TabbedPrintWriter; 24 25 public class NewArrayOperator extends Operator { 26 String baseTypeString; 27 28 public NewArrayOperator(Type arrayType, int dimensions) { 29 super(arrayType, 0); 30 initOperands(dimensions); 31 } 32 33 public int getDimensions() { 34 return subExpressions.length; 35 } 36 37 public int getPriority() { 38 return 900; 39 } 40 41 public void updateSubTypes() { 42 for (int i=0; i< subExpressions.length; i++) 43 subExpressions[i].setType(Type.tUInt); 44 } 45 46 public void updateType() { 47 } 48 49 public void dumpExpression(TabbedPrintWriter writer) 50 throws java.io.IOException { 51 Type flat = type.getCanonic(); 52 int depth = 0; 53 while (flat instanceof ArrayType) { 54 flat = ((ArrayType)flat).getElementType(); 55 depth++; 56 } 57 writer.print("new "); 58 writer.printType(flat.getHint()); 59 for (int i=0; i< depth; i++) { 60 writer.breakOp(); 61 writer.print("["); 62 if (i < subExpressions.length) 63 subExpressions[i].dumpExpression(writer, 0); 64 writer.print("]"); 65 } 66 } 67 } 68 | Popular Tags |