/** * Devuelve el padre de la regla, su antecesor de esta * * @return Regla La regla sin el ultimo valor añadido */ public Regla parentRule() { // generamos la nueva regla, padre de la actual Regla parent = new Regla(this); // se elimina el ultimo atributo añadido Atributo_valor aux = parent.antecedentes.removeLast(); // se elimina de la lista de valores invalidos si estuviera parent.removeValorInv(aux.getAtributo(), aux.getValor()); return parent; }
/** * Compara dos reglas * * @param rule Regla regla con la que se compara * @return boolea Verdadero si es igual, Falso si es diferente */ public boolean equals(Regla rule) { boolean igual = true; // si tiene el mismo tamaño en los antecedentes if (this.antecedentes.size() == rule.getAntecedente().size()) { for (int i = 0; i < this.antecedentes.size(); i++) { if (!rule.getAntecedente().get(i).equals(antecedentes.get(i))) igual = false; } if (!igual) return false; } else { return false; } // ahora se compara que tienen el mismo consecuente if (this.consecuente.equals(rule.getConsecuente())) return true; else return false; }
/** * Contructor copia de Regla * * @param r Regla regla desde la que se copia */ public Regla(Regla r) { antecedentes = (LinkedList) r.getAntecedente().clone(); consecuente = r.getConsecuente(); consistencia = r.getConsistencia(); valoresinvalidos = (LinkedList) r.getValoresInvalidos().clone(); }