1 2 29 package com.puppycrawl.tools.checkstyle.checks.usage.transmogrify; 30 31 import java.util.ArrayList ; 32 import java.util.List ; 33 34 public class PrimitiveClasses { 35 36 public static final ExternalClass BOOLEAN = new ExternalClass(Boolean.TYPE); 37 public static final ExternalClass CHAR = new ExternalClass(Character.TYPE); 38 public static final ExternalClass BYTE = new ExternalClass(Byte.TYPE); 39 public static final ExternalClass SHORT = new ExternalClass(Short.TYPE); 40 public static final ExternalClass INT = new ExternalClass(Integer.TYPE); 41 public static final ExternalClass LONG = new ExternalClass(Long.TYPE); 42 public static final ExternalClass FLOAT = new ExternalClass(Float.TYPE); 43 public static final ExternalClass DOUBLE = new ExternalClass(Double.TYPE); 44 45 private static List order; 46 47 static { 48 order = new ArrayList (); 49 order.add(DOUBLE); 50 order.add(FLOAT); 51 order.add(LONG); 52 order.add(INT); 53 order.add(SHORT); 54 order.add(BYTE); 55 } 56 57 public static boolean typesAreCompatible(ExternalClass hole, 58 ExternalClass peg) { 59 boolean result = false; 60 61 if (hole.equals(BOOLEAN)) { 62 result = peg.equals(BOOLEAN); 63 } 64 else if (hole.equals(CHAR)) { 65 result = peg.equals(CHAR); 66 } 67 else if (peg.equals(CHAR)) { 68 result = (hole.equals(CHAR) || 69 order.indexOf(hole) <= order.indexOf(INT)); 70 } 71 else { 72 result = (order.indexOf(hole) <= order.indexOf(peg)); 73 } 74 75 return result; 76 } 77 78 public static IClass unaryPromote(IClass type) { 79 IClass result = type; 80 81 if (type.equals(BYTE) || type.equals(SHORT) || type.equals(CHAR)) { 82 result = INT; 83 } 84 85 return result; 86 } 87 88 public static IClass binaryPromote(IClass a, IClass b) { 89 IClass result = null; 90 91 if (a.equals(DOUBLE) || b.equals(DOUBLE)) { 92 result = DOUBLE; 93 } 94 else if (a.equals(FLOAT) || b.equals(FLOAT)) { 95 result = FLOAT; 96 } 97 else if (a.equals(LONG) || b.equals(LONG)) { 98 result = LONG; 99 } 100 else { 101 result = INT; 102 } 103 104 return result; 105 } 106 107 } 108 | Popular Tags |