166 } 167 } 168 169 @Test 170 public void isInstanceTest() { 171 for (ConstantValue cv : constants()) { 172 JavaConstant c = cv.value; 173 if (c.getJavaKind() == JavaKind.Object && !c.isNull()) { 174 ResolvedJavaType cType = metaAccess.lookupJavaType(c); 175 for (ResolvedJavaType t : javaTypes) { 176 if (t.isAssignableFrom(cType)) { 177 assertTrue(t.isInstance(c)); 178 } else { 179 assertFalse(t.isInstance(c)); 180 } 181 } 182 } 183 } 184 } 185 186 private static Class<?> asExactClass(Class<?> c) { 187 if (c.isArray()) { 188 if (asExactClass(c.getComponentType()) != null) { 189 return c; 190 } 191 } else { 192 if (c.isPrimitive() || Modifier.isFinal(c.getModifiers())) { 193 return c; 194 } 195 } 196 return null; 197 } 198 199 @Test 200 public void asExactTypeTest() { 201 for (Class<?> c : classes) { 202 ResolvedJavaType type = metaAccess.lookupJavaType(c); 203 ResolvedJavaType exactType = type.asExactType(); 204 Class<?> expected = asExactClass(c); 205 if (expected == null) { 206 assertTrue("exact(" + c.getName() + ") != null", exactType == null); 207 } else { 208 assertNotNull(exactType); 209 assertTrue(exactType.equals(metaAccess.lookupJavaType(expected))); 210 } 211 } 212 } 213 214 @Test 215 public void getSuperclassTest() { 216 for (Class<?> c : classes) { 217 ResolvedJavaType type = metaAccess.lookupJavaType(c); 218 Class<?> expected = c.getSuperclass(); 219 ResolvedJavaType actual = type.getSuperclass(); 220 if (expected == null) { 221 assertTrue(actual == null); 222 } else { 223 assertNotNull(actual); 224 assertTrue(actual.equals(metaAccess.lookupJavaType(expected))); 225 } 226 } 227 } 228 229 @Test 230 public void getInterfacesTest() { 231 for (Class<?> c : classes) { 232 ResolvedJavaType type = metaAccess.lookupJavaType(c); 233 Class<?>[] expected = c.getInterfaces(); | 166 } 167 } 168 169 @Test 170 public void isInstanceTest() { 171 for (ConstantValue cv : constants()) { 172 JavaConstant c = cv.value; 173 if (c.getJavaKind() == JavaKind.Object && !c.isNull()) { 174 ResolvedJavaType cType = metaAccess.lookupJavaType(c); 175 for (ResolvedJavaType t : javaTypes) { 176 if (t.isAssignableFrom(cType)) { 177 assertTrue(t.isInstance(c)); 178 } else { 179 assertFalse(t.isInstance(c)); 180 } 181 } 182 } 183 } 184 } 185 186 @Test 187 public void getSuperclassTest() { 188 for (Class<?> c : classes) { 189 ResolvedJavaType type = metaAccess.lookupJavaType(c); 190 Class<?> expected = c.getSuperclass(); 191 ResolvedJavaType actual = type.getSuperclass(); 192 if (expected == null) { 193 assertTrue(actual == null); 194 } else { 195 assertNotNull(actual); 196 assertTrue(actual.equals(metaAccess.lookupJavaType(expected))); 197 } 198 } 199 } 200 201 @Test 202 public void getInterfacesTest() { 203 for (Class<?> c : classes) { 204 ResolvedJavaType type = metaAccess.lookupJavaType(c); 205 Class<?>[] expected = c.getInterfaces(); |