private StandardType createStandardType(ITypeBinding binding) { IJavaElement javaElement= binding.getJavaElement(); StandardType result= (StandardType)fStandardTypes.get(javaElement); if (result != null) return result; result= new StandardType(this); fStandardTypes.put(javaElement, result); result.initialize(binding, (IType)javaElement); if (OBJECT_TYPE == null && result.isJavaLangObject()) OBJECT_TYPE= result; return result; }
@Override public boolean isJavaLangObject() { return OBJECT_KEY.equals(getBindingKey()); }
@Override public boolean doEquals(TType type) { return getJavaElementType().equals(((StandardType)type).getJavaElementType()); }
@Override protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }
if (lhs.getKind() != PRIMITIVE_TYPE) { if (lhs.getKind() == STANDARD_TYPE) { IJavaProject javaProject= ((StandardType)lhs).getJavaElementType().getJavaProject(); return getEnvironment().createBoxed(this, javaProject).canAssignTo(lhs);
protected boolean canAssignToStandardType(StandardType target) { if (target.isJavaLangObject()) return true; return isSubType(target); } }
PrimitiveType createUnBoxed(StandardType type) { String name= type.getPlainPrettySignature(); for (int i= 0; i < BOXED_PRIMITIVE_NAMES.length; i++) { if (BOXED_PRIMITIVE_NAMES[i].equals(name)) return PRIMITIVE_TYPES[i]; } return null; }
private boolean canAssignToPrimitive(PrimitiveType type) { PrimitiveType source= getEnvironment().createUnBoxed(this); return source != null && source.canAssignTo(type); }
protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }
protected boolean doCanAssignTo(TType lhs) { if (lhs.getKind() != PRIMITIVE_TYPE) { if (lhs.getKind() == STANDARD_TYPE) { IJavaProject javaProject= ((StandardType)lhs).getJavaElementType().getJavaProject(); return getEnvironment().createBoxed(this, javaProject).canAssignTo(lhs);
protected boolean canAssignToStandardType(StandardType target) { if (target.isJavaLangObject()) return true; return isSubType(target); } }
PrimitiveType createUnBoxed(StandardType type) { String name= type.getPlainPrettySignature(); for (int i= 0; i < BOXED_PRIMITIVE_NAMES.length; i++) { if (BOXED_PRIMITIVE_NAMES[i].equals(name)) return PRIMITIVE_TYPES[i]; } return null; }
private boolean canAssignToPrimitive(PrimitiveType type) { PrimitiveType source= getEnvironment().createUnBoxed(this); return source != null && source.canAssignTo(type); }
private StandardType createStandardType(ITypeBinding binding) { IJavaElement javaElement= binding.getJavaElement(); StandardType result= fStandardTypes.get(javaElement); if (result != null) return result; result= new StandardType(this); fStandardTypes.put(javaElement, result); result.initialize(binding, (IType)javaElement); if (OBJECT_TYPE == null && result.isJavaLangObject()) OBJECT_TYPE= result; return result; }
@Override protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }
@Override public boolean doEquals(TType type) { return getJavaElementType().equals(((StandardType)type).getJavaElementType()); }
if (lhs.getKind() != PRIMITIVE_TYPE) { if (lhs.getKind() == STANDARD_TYPE) { IJavaProject javaProject= ((StandardType)lhs).getJavaElementType().getJavaProject(); return getEnvironment().createBoxed(this, javaProject).canAssignTo(lhs);
protected boolean canAssignToStandardType(StandardType target) { if (target.isJavaLangObject()) return true; return isSubType(target); } }
@Override public boolean isJavaLangCloneable() { return CLONEABLE_KEY.equals(getBindingKey()); }
PrimitiveType createUnBoxed(StandardType type) { String name= type.getPlainPrettySignature(); for (int i= 0; i < BOXED_PRIMITIVE_NAMES.length; i++) { if (BOXED_PRIMITIVE_NAMES[i].equals(name)) return PRIMITIVE_TYPES[i]; } return null; }