private void checkMethodsForOverridingFinal(ClassNode cn) { for (MethodNode method : cn.getMethods()) { Parameter[] params = method.getParameters(); for (MethodNode superMethod : cn.getSuperClass().getMethods(method.getName())) { Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if (!superMethod.isFinal()) break; addInvalidUseOfFinalError(method, params, superMethod.getDeclaringClass()); return; } } }
private void checkMethodForWeakerAccessPrivileges(MethodNode mn, ClassNode cn) { if (mn.isPublic()) return; Parameter[] params = mn.getParameters(); for (MethodNode superMethod : cn.getSuperClass().getMethods(mn.getName())) { Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if ((mn.isPrivate() && !superMethod.isPrivate()) || (mn.isProtected() && superMethod.isPublic())) { addWeakerAccessError(cn, mn, params, superMethod); return; } } }
private void checkMethodsForOverwritingFinal(ClassNode cn) { List methods = cn.getMethods(); for (Iterator cnIter = methods.iterator(); cnIter.hasNext();) { MethodNode method = (MethodNode) cnIter.next(); Parameter[] params = method.getParameters(); List superMethods = cn.getSuperClass().getMethods(method.getName()); for (Iterator iter = superMethods.iterator(); iter.hasNext();) { MethodNode superMethod = (MethodNode) iter.next(); Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if (!Modifier.isFinal(superMethod.getModifiers())) return; addInvalidUseOfFinalError(method, params, superMethod.getDeclaringClass()); return; } } }
private void checkMethodsForOverridingFinal(ClassNode cn) { List methods = cn.getMethods(); for (Iterator cnIter = methods.iterator(); cnIter.hasNext();) { MethodNode method = (MethodNode) cnIter.next(); Parameter[] params = method.getParameters(); List superMethods = cn.getSuperClass().getMethods(method.getName()); for (Iterator iter = superMethods.iterator(); iter.hasNext();) { MethodNode superMethod = (MethodNode) iter.next(); Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if (!Modifier.isFinal(superMethod.getModifiers())) break; addInvalidUseOfFinalError(method, params, superMethod.getDeclaringClass()); return; } } }
private void checkMethodsForOverwritingFinal(ClassNode cn) { List methods = cn.getMethods(); for (Iterator cnIter = methods.iterator(); cnIter.hasNext();) { MethodNode method = (MethodNode) cnIter.next(); Parameter[] params = method.getParameters(); List superMethods = cn.getSuperClass().getMethods(method.getName()); for (Iterator iter = superMethods.iterator(); iter.hasNext();) { MethodNode superMethod = (MethodNode) iter.next(); Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if (!Modifier.isFinal(superMethod.getModifiers())) return; addInvalidUseOfFinalError(method, params, superMethod.getDeclaringClass()); return; } } }
private void checkMethodsForOverridingFinal(ClassNode cn) { for (MethodNode method : cn.getMethods()) { Parameter[] params = method.getParameters(); for (MethodNode superMethod : cn.getSuperClass().getMethods(method.getName())) { Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if (!isFinal(superMethod.getModifiers())) break; addInvalidUseOfFinalError(method, params, superMethod.getDeclaringClass()); return; } } }
private void checkMethodForWeakerAccessPrivileges(MethodNode mn, ClassNode cn) { Parameter[] params = mn.getParameters(); for (MethodNode superMethod : cn.getSuperClass().getMethods(mn.getName())) { Parameter[] superParams = superMethod.getParameters(); if (!hasEqualParameterTypes(params, superParams)) continue; if ((mn.isPrivate() && !superMethod.isPrivate()) || (mn.isProtected() && superMethod.isPublic())) { addWeakerAccessError(cn, mn, params, superMethod); return; } } }