protected OverrideCheckDetails getPrimaryValidDetail(IResolvedOperation overriding, JvmOperation overridden) { OverrideCheckDetails result = OverrideCheckDetails.IMPLEMENTATION; JvmOperation declaration = overriding.getDeclaration(); if (declaration.isStatic()) { result = OverrideCheckDetails.SHADOWED; } else if (declaration.isAbstract()) { if (overridden.isAbstract()) { result = OverrideCheckDetails.REPEATED; } else { result = OverrideCheckDetails.REDECLARATION; } } else if (!overridden.isAbstract()) { result = OverrideCheckDetails.OVERRIDE; } return result; }
@Override public boolean isAbstract() { return this.getDelegate().isAbstract(); }
private boolean isValidFunction(JvmOperation op) { // TODO we need context here - the op has to be visible if (op.isAbstract()) { if (Object.class.getName().equals(op.getDeclaringType().getIdentifier())) return false; final String name = op.getSimpleName(); if (name.equals("toString") && op.getParameters().isEmpty()) return false; if (name.equals("equals") && op.getParameters().size() == 1) return false; if (name.equals("hashCode") && op.getParameters().isEmpty()) return false; return true; } return false; }
@Override public IResolvedOperation getOverriddenMethod() { if (!getDeclaration().isAbstract() && getDeclaration().getVisibility() != JvmVisibility.PRIVATE) { List<IResolvedOperation> overriddenAndImplemented = getOverriddenAndImplementedMethods(); for(IResolvedOperation candidate: overriddenAndImplemented) { if (!candidate.getDeclaration().isAbstract()) { return candidate; } } } return null; }
protected void createMethods(Class<?> clazz, JvmDeclaredType result) { try { Method[] declaredMethods = clazz.getDeclaredMethods(); if (declaredMethods.length != 0) { boolean intf = clazz.isInterface() && !clazz.isAnnotation(); InternalEList<JvmMember> members = (InternalEList<JvmMember>)result.getMembers(); for (Method method : declaredMethods) { if (!method.isSynthetic()) { JvmOperation operation = createOperation(method); if (clazz.isAnnotation()) { setDefaultValue(operation, method); } else if (intf && !operation.isAbstract() && !operation.isStatic()) { operation.setDefault(true); } members.addUnique(operation); } } } } catch (NoClassDefFoundError e) { logNoClassDefFoundError(e, clazz, "methods"); } }
protected boolean isConflictingDefaultImplementation(AbstractResolvedOperation overriding, AbstractResolvedOperation overridden) { JvmOperation ridingDecl = overriding.getDeclaration(); JvmOperation riddenDecl = overridden.getDeclaration(); if (isInterface(ridingDecl.getDeclaringType()) && isInterface(riddenDecl.getDeclaringType()) && (!ridingDecl.isAbstract() || !riddenDecl.isAbstract())) { LightweightTypeReference ridingTypeRef = overriding.getResolvedDeclarator(); LightweightTypeReference riddenTypeRef = overridden.getResolvedDeclarator(); return !riddenTypeRef.isAssignableFrom(ridingTypeRef); } return false; }
if (operation.isAbstract()) { ConflictingDefaultOperation resolvedOperation = createConflictingOperation(conflictingOperations.get(0).getDeclaration()); resolvedOperation.getConflictingOperations().add(createResolvedOperation(operation));
if (operation.isAbstract()) { ConflictingDefaultOperation resolvedOperation = createConflictingOperation(conflictingOperations.get(0).getDeclaration()); resolvedOperation.getConflictingOperations().add(createResolvedOperation(operation));
bitset.set(7); if (operation.isAbstract()) { bitset.set(8);
operation.setNative((access & ACC_NATIVE) != 0); if (declarator.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE && ((JvmGenericType) declarator).isInterface()) { if (!operation.isAbstract() && !operation.isStatic()) { operation.setDefault(true);
protected boolean isCandidate(final LightweightTypeReference type, final IResolvedExecutable executable, final IVisibilityHelper visibilityHelper) { JvmDeclaredType declaringType = executable.getDeclaration().getDeclaringType(); if (((type.getType() != declaringType) && this.isVisible(executable, visibilityHelper))) { JvmExecutable rawExecutable = executable.getDeclaration(); if ((rawExecutable instanceof JvmOperation)) { JvmOperation operation = ((JvmOperation)rawExecutable); if ((operation.isFinal() || operation.isStatic())) { return false; } else { if (((type.getType() instanceof JvmGenericType) && ((JvmGenericType) type.getType()).isInterface())) { return (((declaringType instanceof JvmGenericType) && ((JvmGenericType) declaringType).isInterface()) && (!operation.isAbstract())); } else { return true; } } } else { return true; } } return false; }
boolean _isAbstract = it.isAbstract(); if (_isAbstract) { appendable.append("abstract "); appendable.append("static "); if ((((((!it.isAbstract()) && (!it.isStatic())) && config.getJavaSourceVersion().isAtLeast(JavaVersion.JAVA8)) && (it.eContainer() instanceof JvmGenericType)) && ((JvmGenericType) it.eContainer()).isInterface())) { appendable.append("default ");
JvmDeclaredType operationDeclaringType = operation.getDeclaration().getDeclaringType(); if (operationDeclaringType != inferredType) { if (operationsMissingImplementation != null && operation.getDeclaration().isAbstract()) { operationsMissingImplementation.add(operation); + EcoreUtil.getURI(conflictingOperation.getDeclaration()).toString() }; if (!operation.getDeclaration().isAbstract() && !conflictingOperation.getDeclaration().isAbstract()) { error("The type " + inferredType.getSimpleName() + " inherits multiple implementations of the method " + conflictingOperation.getSimpleSignature() if (operation.getDeclaration().isAbstract()) { abstractOp = operation; nonabstractOp = conflictingOperation;
if (jvmOperation.isAbstract()) { highlightFeatureCall(featureCall, acceptor, ABSTRACT_METHOD_INVOCATION);
tracedAppendable.append(")"); //$NON-NLS-1$ generateThrowsClause(it, tracedAppendable, config); if (it.isAbstract() || !hasBody(it)) { tracedAppendable.append(";"); //$NON-NLS-1$ } else {
protected SignatureHashBuilder appendSignature(JvmOperation operation) { appendVisibility(operation.getVisibility()).append(" "); if (operation.isAbstract()) append("abstract "); if (operation.isStatic()) append("static "); if (operation.isFinal()) append("final "); appendType(operation.getReturnType()).appendTypeParameters(operation).append(" ") .append(operation.getSimpleName()).append("("); for (JvmFormalParameter p : operation.getParameters()) { appendType(p.getParameterType()); append(" "); } append(") "); for (JvmTypeReference ex : operation.getExceptions()) { appendType(ex).append(" "); } return this; }
if (operation.isAbstract() && featureCall instanceof XMemberFeatureCall) { Severity severity = getSeverity(IssueCodes.ABSTRACT_METHOD_INVOCATION); if (severity != Severity.IGNORE) {
|| !((JvmGenericType) type).isInterface()) && superOperation != null && !superOperation.isAbstract()) {
tracedAppendable.append(")"); this.generateThrowsClause(it, tracedAppendable, config); if ((it.isAbstract() || (!this.hasBody(it)))) { tracedAppendable.append(";"); } else {
operation.setVisibility(visibility); operation.setStatic(source.isStatic()); if (!operation.isAbstract() && !operation.isStatic() && container.isInterface()) operation.setDefault(true); for (XtendParameter parameter : source.getParameters()) {