/** * Comprueba el valor de verdad del predicado. * * @return <code>true</code> si no existe el método en ninguna superclase de la clase * especificada; <code>false</code> en caso contrario. */ public boolean isValid() { NotExistsMethodWithNameInClass subPredicate; ClassDef nextSuperclass; Name uniqueName; // Se obtiene la lista de parámetros del método buscado. int parameterTypesFirstIndex = method.getUniqueName().toString().indexOf('%'); String parameterTypesPart = ""; // $NON-NLS-1$ if (parameterTypesFirstIndex >= 0) parameterTypesPart = method.getUniqueName().toString().substring(parameterTypesFirstIndex); // Se obtienen todas las superclases de la clase seleccionada. Iterator<ClassDef> superClassIt = new SuperclassCollector(classDef).getCollection().iterator(); while (superClassIt.hasNext()) { nextSuperclass = superClassIt.next(); uniqueName = nextSuperclass .getUniqueName() .concat('~' + method.getName().toString() + parameterTypesPart); subPredicate = new NotExistsMethodWithNameInClass(nextSuperclass, uniqueName); if (!(subPredicate.isValid())) return false; } return true; }
/** * Constructor. * * <p>Obtiene una nueva instancia de NotExistsCallToThisMethod. * * @param method el método cuyas llamadas se buscan. */ public NotExistsCallToThisMethod(MethDec method) { super( "NotExistsCallToThisMethod:\n\t" + //$NON-NLS-1$ "Makes sure no calls to the given method " + //$NON-NLS-1$ '"' + method.getName().toString() + '"' + " exist" + ".\n\n"); //$NON-NLS-1$ //$NON-NLS-2$ this.method = method; exprIds = new ArrayList<Integer>(); }
/** * Constructor. * * <p>Obtiene una nueva instancia de MethodIsNotAlreadyInSuperclasses. * * @param method el método cuyo equivalente en una superclase se desea buscar. * @param classDef la clase en cuyas superclases se busca el método. */ public MethodIsNotAlreadyInSuperclasses(MethDec method, ClassDef classDef) { super( "MethodIsNotAlreadyInSuperclasses:\n\t" + //$NON-NLS-1$ "Makes sure the given method " + '"' + method.getName().toString() + //$NON-NLS-1$ '"' + " is not to be found within any of the superclasses of the " + //$NON-NLS-1$ "class " + '"' + classDef.getName().toString() + '"' + ".\n\n"); //$NON-NLS-1$ //$NON-NLS-2$ this.classDef = classDef; this.method = method; }
/** * Obtiene el conjunto de variables locales de un método. * * @return el conjunto de variables locales del método. */ public Collection<LocalDec> getCollection() { return methDec.getLocalDecs(); }