< prev index next >

src/jdk.dev/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java

Print this page
rev 10947 : 8055723: Replace concat String to append in StringBuilder parameters


 329     }
 330 
 331     public float getFloatAt(int index) {
 332         checkIndex(index);
 333         requireType('F');
 334         return floatAt(index << 2, getValue());
 335     }
 336 
 337     public double getDoubleAt(int index) {
 338         checkIndex(index);
 339         requireType('D');
 340         return doubleAt(index << 3, getValue());
 341     }
 342 
 343     public String valueString() {
 344         return valueString(true);
 345     }
 346 
 347     public String valueString(boolean bigLimit) {
 348         // Char arrays deserve special treatment
 349         StringBuffer result;
 350         byte[] value = getValue();
 351         int max = value.length;
 352         byte elementSignature = getElementType();
 353         if (elementSignature == 'C')  {
 354             result = new StringBuffer();
 355             for (int i = 0; i < value.length; ) {
 356                 char val = charAt(i, value);
 357                 result.append(val);
 358                 i += 2;
 359             }
 360         } else {
 361             int limit = 8;
 362             if (bigLimit) {
 363                 limit = 1000;
 364             }
 365             result = new StringBuffer("{");
 366             int num = 0;
 367             for (int i = 0; i < value.length; ) {
 368                 if (num > 0) {
 369                     result.append(", ");
 370                 }
 371                 if (num >= limit) {
 372                     result.append("... ");
 373                     break;
 374                 }
 375                 num++;
 376                 switch (elementSignature) {
 377                     case 'Z': {
 378                         boolean val = booleanAt(i, value);
 379                         if (val) {
 380                             result.append("true");
 381                         } else {
 382                             result.append("false");
 383                         }
 384                         i++;
 385                         break;
 386                     }
 387                     case 'B': {
 388                         int val = 0xFF & byteAt(i, value);
 389                         result.append("0x" + Integer.toString(val, 16));
 390                         i++;
 391                         break;
 392                     }
 393                     case 'S': {
 394                         short val = shortAt(i, value);
 395                         i += 2;
 396                         result.append("" + val);
 397                         break;
 398                     }
 399                     case 'I': {
 400                         int val = intAt(i, value);
 401                         i += 4;
 402                         result.append("" + val);
 403                         break;
 404                     }
 405                     case 'J': {         // long
 406                         long val = longAt(i, value);
 407                         result.append("" + val);
 408                         i += 8;
 409                         break;
 410                     }
 411                     case 'F': {
 412                         float val = floatAt(i, value);
 413                         result.append("" + val);
 414                         i += 4;
 415                         break;
 416                     }
 417                     case 'D': {         // double
 418                         double val = doubleAt(i, value);
 419                         result.append("" + val);
 420                         i += 8;
 421                         break;
 422                     }
 423                     default: {
 424                         throw new RuntimeException("unknown primitive type?");
 425                     }
 426                 }
 427             }
 428             result.append("}");
 429         }
 430         return result.toString();
 431     }
 432 
 433 }


 329     }
 330 
 331     public float getFloatAt(int index) {
 332         checkIndex(index);
 333         requireType('F');
 334         return floatAt(index << 2, getValue());
 335     }
 336 
 337     public double getDoubleAt(int index) {
 338         checkIndex(index);
 339         requireType('D');
 340         return doubleAt(index << 3, getValue());
 341     }
 342 
 343     public String valueString() {
 344         return valueString(true);
 345     }
 346 
 347     public String valueString(boolean bigLimit) {
 348         // Char arrays deserve special treatment
 349         StringBuilder result;
 350         byte[] value = getValue();
 351         int max = value.length;
 352         byte elementSignature = getElementType();
 353         if (elementSignature == 'C')  {
 354             result = new StringBuilder();
 355             for (int i = 0; i < value.length; ) {
 356                 char val = charAt(i, value);
 357                 result.append(val);
 358                 i += 2;
 359             }
 360         } else {
 361             int limit = 8;
 362             if (bigLimit) {
 363                 limit = 1000;
 364             }
 365             result = new StringBuilder("{");
 366             int num = 0;
 367             for (int i = 0; i < value.length; ) {
 368                 if (num > 0) {
 369                     result.append(", ");
 370                 }
 371                 if (num >= limit) {
 372                     result.append("... ");
 373                     break;
 374                 }
 375                 num++;
 376                 switch (elementSignature) {
 377                     case 'Z': {
 378                         boolean val = booleanAt(i, value);
 379                         if (val) {
 380                             result.append("true");
 381                         } else {
 382                             result.append("false");
 383                         }
 384                         i++;
 385                         break;
 386                     }
 387                     case 'B': {
 388                         int val = 0xFF & byteAt(i, value);
 389                         result.append("0x").append(Integer.toString(val, 16));
 390                         i++;
 391                         break;
 392                     }
 393                     case 'S': {
 394                         short val = shortAt(i, value);
 395                         i += 2;
 396                         result.append(val);
 397                         break;
 398                     }
 399                     case 'I': {
 400                         int val = intAt(i, value);
 401                         i += 4;
 402                         result.append(val);
 403                         break;
 404                     }
 405                     case 'J': {         // long
 406                         long val = longAt(i, value);
 407                         result.append(val);
 408                         i += 8;
 409                         break;
 410                     }
 411                     case 'F': {
 412                         float val = floatAt(i, value);
 413                         result.append(val);
 414                         i += 4;
 415                         break;
 416                     }
 417                     case 'D': {         // double
 418                         double val = doubleAt(i, value);
 419                         result.append(val);
 420                         i += 8;
 421                         break;
 422                     }
 423                     default: {
 424                         throw new RuntimeException("unknown primitive type?");
 425                     }
 426                 }
 427             }
 428             result.append('}');
 429         }
 430         return result.toString();
 431     }
 432 
 433 }
< prev index next >