Skip to content
Snippets Groups Projects
Commit 83be69ba authored by Javier Calvo's avatar Javier Calvo
Browse files

Mejoras en puerto y muelle

parent 69a14839
No related branches found
No related tags found
No related merge requests found
......@@ -14,32 +14,39 @@ import es.uva.inf.poo.maps.GPSCoordinate;
*/
public class Muelle {
private Contenedor[] plazasMuelle;
private Contenedor[] contenedores;
private int identificador;
private boolean operativo;
private GPSCoordinate cord;
private int plazasLlenas;
private int plazasVacias = 0;
private int plazasVacias;
private int plazasLlenas = 0;
private int plazasSemillenas = 0;
private int contenedoresApilabes;
/**
* Constructor del objeto Muelle
* @param identificador Identificador de 2 digitos (12)
* @param cord Punto GPS que lo localiza (5.445,3.4343)
* @param ocupado Estaod del muelle (ocupado o libre)
* @param plazas (Numero de plazas totales que tiene el Muelle)
* @param cord Punto GPS que lo localiza. Clase GPSCoordinate.
* @param operativo Estado del muelle. True (ocupado o libre)
* @param plazas Numero de plazas totales que tiene el Muelle
* @param contenedoresApilables numero maximo de contenedores que se pueden apilar encima de otro
*/
public Muelle (int identificador, GPSCoordinate cord, boolean operativo, int plazas) {
//QUEDA LO DEL NIVEL EN PLAZA, HAY QUE VER COMO LO PONEMOS Y PROGRAMAMOS
public Muelle (int identificador, GPSCoordinate cord, boolean operativo, int plazas, int contenedoresApilables) {
if(String.valueOf(identificador).length() != 2) {
throw new IllegalArgumentException("Formato incorrecto. Debe ser un entero de 2 digitos");
}
this.identificador = identificador;
this.cord=cord;
this.operativo=operativo;
this.plazasMuelle = new Contenedor[plazas];
this.contenedores = new Contenedor[plazas];
this.plazasVacias = plazas;
this.contenedoresApilabes = contenedoresApilables;
}
/**
* Metodo que devuelve el identificador de un muelle.
* @return identificador
* Metodo que devuelve el identificador de un muelle. Este identificador sera de 2 digitos.
* @return identificador del muelle
*/
public int getIdentificador() {
return this.identificador;
......@@ -47,7 +54,7 @@ public class Muelle {
/**
* Metodo que indica si el Muelle esta operativo o no
* @return Si esta ocupado o no
* @return Si esta operativo (true) o no (false)
*/
public boolean estaOperativo() {
return this.operativo;
......@@ -55,30 +62,34 @@ public class Muelle {
/**
* Metodo que devuelve el punto de coordenadas del muelle
* @return cord;
* Este punto pertenece a la clase GPSCoordinate
* @return coordenadas del muelle;
*/
public GPSCoordinate getGPSCoordinate() {
return this.cord;
}
/**
* 1.1.7 Metodo que devuelve el numero de plazas totales
* @return plazasMuelle.lenght
* 1.1.7 Metodo que devuelve el numero de plazas totales que tiene el muelle
* @return numero de plazas (totales) del muelle
*/
public int numeroDePlazasTotales() {
return this.plazasMuelle.length;
return this.contenedores.length;
}
/**
* 1.1.8 Metodo que devuelve el numero de plazas vacias
* @return plazasVacias
* 1.1.8 Metodo que devuelve el numero de plazas vacias, es decir que no se encuentran ocupadas por ningun
* contenedor.
* @return numero de plazas vacias.
*/
public int plazasVacias() {
return this.plazasVacias;
}
/**
* 1.1.8 Metodo que devuelve el numero e plazas llenas
* 1.1.8 Metodo que devuelve el numero de plazas llenas. Una plaza llena es la que:
* - Se encuentran con el numero máximo de contenedores apilados en la plaza
* - El contenedor o el ultimo contenedor apilado no tiene techo, lo que no se peden colocar más.
* @return plazasLlenas
*/
public int plazasLlenas() {
......@@ -86,24 +97,51 @@ public class Muelle {
}
/**
* Metodo que devuelve el numero de plazas semillenas
* 1.1.8 Metodo que devuelve el numero de plazas semillenas. Las plazas semillenas son aquellas que
* contienen un contenedor y se puede apilar mas encima de el (tiene techo)
* @return plazasSemillenas
*/
public int plazasSemillenas() {
// TODO Auto-generated method stub
return this.plazasSemillenas;
}
public int plazaActual(int codigoContenedor) {
// Recorrer array de Contenedores y comparar si coinciden los identificadores
return 0;
/**
* 1.1.9 Metodo que devuelve la plaza de un contenedor dentro del muelle.
* Las plazas van en orden, del 1 hasta la ultima plaza del muelle disponible
* @param codigo: codigo del contenedor para ver su plaza actual
* @return la plaza del contenedor
*/
public int plazaActual(String codigo) {
for (int i=0; i<this.contenedores.length; i++) {
if(contenedores[i].getCodigo().equals(codigo)) {
return contenedores[i].getCodigo();
}
}
}
public int nivelEnPlaza(int codigoContenedor) {
/**
* 1.1.10 Metodo que devuelve el nivel de la plaza en la que se encuentra un contenedor.
* El valor varia entre 1 y el numero máximo de contenedores que se pueden apilar (diferente en cada muelle)
* @param codigo: codigo del contenedor que queremos buscar su nivel
* @return el nivel en el que se encuentra el contenedor
*/
public int nivelEnPlaza(String codigo) {
return 0;
}
/**
*
* @param codigo
* @param plaza
* @return
*/
//CAMBIAR EL RETURN. ¿QUE PONEMOS?
public boolean colocarContenedorEnPlaza(String codigo, int plaza) {
}
......
......
......@@ -21,10 +21,14 @@ public class Puerto {
/**
* Constructor del objeto Puerto.
* @param id: Identificador del muelle (ES-BAR)
* @param pais Pais al que pertenece el puerto (2 letras) Ej: ES
* @param ciudad Ciudad al que pertenece el puerto (3 letras) Ej : VAL
*/
public Puerto(String id) {
this.identificador = id;
public Puerto(String pais, String ciudad) {
if (pais.length()!= 2 && ciudad.length() !=3) {
throw new IllegalArgumentException("Formato incorrecto. Debe ser "+"XX-XXX");
}
this.identificador = pais.toUpperCase()+"-"+ciudad.toUpperCase();
}
/**
......@@ -106,7 +110,7 @@ public class Puerto {
* 1.1.6 metodo que devuelve una lista con los muelles mas cercanos a un cierto punto GPS y un radio
* @param puntoDado
* @param distanciaMaxima
* @return
* @return lista de los muelles mas cercanos a ese punto
*/
//NO ESTA IMPLEMENTADO DEL TODO, YA QUE NO SABEMOS QUE DISTACIA O QUE REFERENCIA HAY QUE COGER
public Muelle[] muellesCercanoAPunto(GPSCoordinate puntoDado, double radio) {
......
......
......@@ -16,8 +16,9 @@ public class UsaMuelle {
*/
public static void main(String[] args) {
GPSCoordinate cord = new GPSCoordinate(0d, 0d);
Muelle m = new Muelle(01, cord , false, 20);
Muelle m = new Muelle(01, cord , true, 20, 3);
Puerto p = new Puerto("ES-VAL");
Contenedor c = new Contenedor(01);
//Numero de plazas del muelle
int plazas = m.numeroDePlazasTotales();
......@@ -26,7 +27,18 @@ public class UsaMuelle {
int plazasSemillenas = m.plazasSemillenas();
int plazasLlenas = m.plazasLlenas();
//Dado un codigo de contenedor, indicar la plaza en la que está
//Obtenemos el codigo del contenedor
String codigo = c.getCodigo();
int plaza = m.plazaActual(codigo);
//Dado un codigo de contenedor, indicar en que nivel de la plaza está
int nivel = m.nivelEnPlaza(codigo);
//Asignar un contenedor a una plaza y apilarlo encima de otro si es posible
int plazaElegida = 10;
boolean colocar = m.colocarContenedorEnPlaza(codigo, plazaElegida);
}
}
......@@ -25,7 +25,7 @@ public class UsaPuerto {
//APARTADO DE PUERTO
GPSCoordinate cord = new GPSCoordinate(0d, 0d);
Muelle m = new Muelle(01, cord , false, 20);
Muelle m = new Muelle(01, cord , true, 20, 3);
Puerto p = new Puerto("ES-VAL");
//Añadir muelle
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment