@Override public boolean isEnum() { return mTypeBinding.isEnum(); }
@Override public ElementKind getKind() { if (_binding instanceof FieldBinding) { if (((FieldBinding)_binding).declaringClass.isEnum()) { return ElementKind.ENUM_CONSTANT; } else { return ElementKind.FIELD; } } else { return ElementKind.PARAMETER; } }
@Override public ElementKind getKind() { if (_binding instanceof FieldBinding) { if (((FieldBinding)_binding).declaringClass.isEnum()) { return ElementKind.ENUM_CONSTANT; } else { return ElementKind.FIELD; } } else { return ElementKind.PARAMETER; } }
@Override public ElementKind getKind() { if (_binding instanceof FieldBinding) { if (((FieldBinding)_binding).declaringClass.isEnum()) { return ElementKind.ENUM_CONSTANT; } else { return ElementKind.FIELD; } } else { return ElementKind.PARAMETER; } }
@Override public boolean visit(FieldDeclaration fieldDeclaration, MethodScope scope) { CtField<Object> field; if (fieldDeclaration.type != null) { field = factory.Core().createField(); } else { field = factory.Core().createEnumValue(); if (fieldDeclaration.binding != null) { field.setType(references.getTypeReference(fieldDeclaration.binding.type)); } } field.setSimpleName(CharOperation.charToString(fieldDeclaration.name)); if (fieldDeclaration.binding != null) { if (fieldDeclaration.binding.declaringClass != null && fieldDeclaration.binding.declaringClass.isEnum() && field instanceof CtEnumValue) { //enum values take over visibility from enum type //JDT compiler has a bug that enum values are always public static final, even for private enum field.setExtendedModifiers(getModifiers(fieldDeclaration.binding.declaringClass.modifiers, true, false)); } else { field.setExtendedModifiers(getModifiers(fieldDeclaration.binding.modifiers, true, false)); } } for (CtExtendedModifier extendedModifier : getModifiers(fieldDeclaration.modifiers, false, false)) { field.addModifier(extendedModifier.getKind()); // avoid to keep implicit AND explicit modifier of the same kind. } context.enter(field, fieldDeclaration); return true; }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { if (length == 2) { return Collections.emptyList(); } ArrayList<TypeMirror> list = new ArrayList<>(); for (int i = 2; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { ArrayList<TypeMirror> list = new ArrayList<>(); for (int i = 0; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { if (length == 2) { return Collections.emptyList(); } ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (int i = 2; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { if (length == 2) { return Collections.emptyList(); } ArrayList<TypeMirror> list = new ArrayList<>(); for (int i = 2; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { if (length == 2) { return Collections.emptyList(); } ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (int i = 2; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
@Override public List<? extends TypeMirror> getParameterTypes() { MethodBinding binding = (MethodBinding) this._binding; TypeBinding[] parameters = binding.parameters; int length = parameters.length; boolean isEnumConstructor = binding.isConstructor() && binding.declaringClass.isEnum() && binding.declaringClass.isBinaryBinding() && ((binding.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0); if (isEnumConstructor) { if (length == 2) { return Collections.emptyList(); } ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (int i = 2; i < length; i++) { list.add(_env.getFactory().newTypeMirror(parameters[i])); } return Collections.unmodifiableList(list); } if (length != 0) { ArrayList<TypeMirror> list = new ArrayList<TypeMirror>(); for (TypeBinding typeBinding : parameters) { list.add(_env.getFactory().newTypeMirror(typeBinding)); } return Collections.unmodifiableList(list); } return Collections.emptyList(); }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
ReferenceBinding declaringClass = methodBinding.declaringClass; if (methodBinding.isConstructor() && declaringClass.isEnum()) { this.maxLocals += 2; // String and int (enum constant name+ordinal)
ReferenceBinding declaringClass = methodBinding.declaringClass; if (methodBinding.isConstructor() && declaringClass.isEnum()) { this.maxLocals += 2; // String and int (enum constant name+ordinal)
ReferenceBinding declaringClass = methodBinding.declaringClass; if (methodBinding.isConstructor() && declaringClass.isEnum()) { this.maxLocals += 2; // String and int (enum constant name+ordinal)