1 16 package com.google.gwt.dev.jjs.ast; 17 18 21 public class JArrayType extends JClassType { 22 23 private static String calcName(JType leafType, int dims) { 24 String name = leafType.getName(); 25 for (int i = 0; i < dims; ++i) { 26 name = name + "[]"; 27 } 28 return name; 29 } 30 31 private int dims; 32 private JType leafType; 33 34 37 JArrayType(JProgram program, JType leafType, int dims) { 38 super(program, null, calcName(leafType, dims), false, false); 39 this.leafType = leafType; 40 this.dims = dims; 41 } 42 43 public int getDims() { 44 return dims; 45 } 46 47 public JType getElementType() { 48 if (dims == 1) { 49 return leafType; 50 } 51 return program.getTypeArray(leafType, dims - 1); 52 } 53 54 public String getJavahSignatureName() { 55 String s = leafType.getJavahSignatureName(); 56 for (int i = 0; i < dims; ++i) { 57 s = "_3" + s; 58 } 59 return s; 60 } 61 62 public String getJsniSignatureName() { 63 String s = leafType.getJsniSignatureName(); 64 for (int i = 0; i < dims; ++i) { 65 s = "[" + s; 66 } 67 return s; 68 } 69 70 public JType getLeafType() { 71 return leafType; 72 } 73 74 public boolean isAbstract() { 75 return false; 76 } 77 78 public boolean isFinal() { 79 return false; 80 } 81 82 public void traverse(JVisitor visitor, Context ctx) { 83 if (visitor.visit(this, ctx)) { 84 } 85 visitor.endVisit(this, ctx); 86 } 87 88 } 89 | Popular Tags |