no creo que tu problema es donde lo indicas. tu problema esta en dos lugares: la invocacion de agregar la empresa y la logistica de determinar si la empresa ya esta registrada. en el primer caso tu indicas que
agregarEmpresa es un metodo de la clase Aeropuerto. sin embargo, ¿donde esta la instancia de tu objeto?
Código:
if (???.AgregarEmpresa(miEmpresa)){
alert("Empresa registrada con exito");
}
en el segundo error, logisitca para determinar empresa registrada. en un inicio si el array esta vacio, quiere decir que tiene longitud de cero pero mira lo que has hecho en tus condiciones del bucle.
Código:
while(pos <= this.mEmpresas.length-1 && (registro == false)){
// se traduce como 0 <= -1 de modo que simpre devuelve falso;
lo segundo es la forma que comparas los nombres de las empresas. supongamos que el array contiene dos empresas registradas: "X" y "Y". el numero no importa pero de momento usaremos dos. si se intenta registrar la empresa "Z", veamos como se interpreta segun tu codigo.
Código:
if( temEmpresa.getNombre() != pEmpresa.getNombre() ){
si "X" no es igual a "Z", resulta como cierto porque ambos valores no son iguales. por tanto se procede a registrar la empresa y se cancela el bucle. pero digamos que esta vez queremos registrar de nuevo la empresa "Z". en el array ahora tenemos "X", "Y", "Z". cuando vuelve y se compara con el primero, vuelve a dar cierto como en el ejemplo anterior. el problema es que no estas verificando la nueva empresa con todos los valores del array, sino que solamente con el primero. y si ese primero resulta ser iguales, por ejemplo
"X" no es igual que "X" devuelve falso, entonces la segunda comparacion dara cierto puesto que
"Y" no es igual que "X".