From fd1031ad149eee4d7f1e1a13e506059a7c726820 Mon Sep 17 00:00:00 2001
From: Javier Calvo <javiercalvoporro@gmail.com>
Date: Sat, 21 Dec 2024 18:46:48 +0100
Subject: [PATCH] Cambios en Trayectos completos

---
 src/es/markse/TCombinado.java      | 48 +++++++++++++++++++++++++++
 src/es/markse/TPackCamionTren.java |  1 -
 src/es/markse/TSimple.java         | 52 ++++++++++++++++++++++++++++++
 src/es/markse/Trayecto.java        | 41 +++++++++--------------
 4 files changed, 115 insertions(+), 27 deletions(-)

diff --git a/src/es/markse/TCombinado.java b/src/es/markse/TCombinado.java
index 6cf308c..d2b3cf4 100644
--- a/src/es/markse/TCombinado.java
+++ b/src/es/markse/TCombinado.java
@@ -79,4 +79,52 @@ public abstract class TCombinado extends Trayecto {
     			t1.getPuertoDestino().identificadorPuerto().equals(t2.getPuertoOrigen().identificadorPuerto()))
     			? true : false;
     }
+    
+    /**
+	 * Método que Devuelve el primer Muelle de Origen de la lista
+	 * @return muelleOrigen
+	 */
+	public Muelle getMuelleOrigen() {
+		return this.trayectosSimples.get(0).muelleOrigen;
+	}
+	
+	/**
+	 * Método que Devuelve el ultimo Muelle de Destino de la lista
+	 * @return muelleOrigen
+	 */
+	public Muelle getMuelleDestino() {
+		return this.trayectosSimples.get(this.trayectosSimples.size()-1).muelleDestino;
+	}
+	
+	/**
+	 * Método que Devuelve el Puerto de Origen de la lista
+	 * @return puertoOrigen
+	 */
+	public Puerto getPuertoOrigen(){
+		return this.trayectosSimples.get(0).puertoOrigen;
+	}
+	
+	/**
+	 * Método que Devuelve el ultimo Puerto de Destino de la lista
+	 * @return puertoDestino
+	 */
+	public Puerto getPuertoDestino() {
+		return this.trayectosSimples.get(this.trayectosSimples.size()-1).puertoDestino;
+	}
+	
+	/**
+	 * Método que Devuelve la primera Fecha del Inicio del Trayecto de la lista
+	 * @return fechaInicioTrayecto
+	 */
+	public Fecha getFechaInicioTrayecto() {
+		return this.trayectosSimples.get(0).fechaInicioTrayecto;
+	}
+	
+	/**
+	 * Método que Devuelve la ultima Fecha del Fin del Trayecto de la lista
+	 * @return fechaFinTrayecto
+	 */
+	public Fecha getFechaFinTrayecto() {
+		return this.trayectosSimples.get(this.trayectosSimples.size()-1).fechaFinTrayecto;
+	}
 }
diff --git a/src/es/markse/TPackCamionTren.java b/src/es/markse/TPackCamionTren.java
index 6f0eeb8..c671c0e 100644
--- a/src/es/markse/TPackCamionTren.java
+++ b/src/es/markse/TPackCamionTren.java
@@ -96,7 +96,6 @@ public class TPackCamionTren extends TCombinado {
     public double costeTrayecto() {
     	double coste = 0;
     	for (TSimple ts : this.trayectosSimples) {
-    		//Sabemos que obligaotoriamente es de tipo TVehiculoTierra
     		TVehiculoTierra tv = (TVehiculoTierra) ts;
     		tv.COSTE_FIJO = this.RED_COSTE_FIJO;
     		tv.COSTE_POR_KILOMETRO = this.RED_COSTE_POR_KILOMETRO;
diff --git a/src/es/markse/TSimple.java b/src/es/markse/TSimple.java
index db15bd8..cf863c2 100644
--- a/src/es/markse/TSimple.java
+++ b/src/es/markse/TSimple.java
@@ -37,5 +37,57 @@ public abstract class TSimple extends Trayecto {
     private double convertirMillasAKilometros(double millas) {
         return millas * this.MILLAS_A_KILOMETROS;
     }
+    
+    /********************************************
+     * OBTENCION DE LOS VALORES PARA EL TSIMPLE *
+     ********************************************/
+    
+    /**
+	 * Método que Devuelve el Muelle de Origen
+	 * @return muelleOrigen
+	 */
+    public Muelle getMuelleOrigen() {
+    	return this.muelleOrigen;
+    }
+	
+	/**
+	 * Método que Devuelve el Muelle de Destino
+	 * @return muelleDestino
+	 */
+	public Muelle getMuelleDestino() {
+		return this.muelleDestino;
+	}
+	
+	/**
+	 * Método que Devuelve el Puerto de Origen
+	 * @return puertoOrigen
+	 */
+	public Puerto getPuertoOrigen() {
+		return this.puertoOrigen;
+	}
+	
+	/**
+	 * Método que Devuelve el Puerto de Destino
+	 * @return puertoDestino
+	 */
+	public Puerto getPuertoDestino() {
+		return this.puertoDestino;
+	}
+	
+	/**
+	 * Método que Devuelve la Fecha del Inicio del Trayecto
+	 * @return fechaInicioTrayecto
+	 */
+	public Fecha getFechaInicioTrayecto() {
+		return this.fechaInicioTrayecto;
+	}
+	
+	/**
+	 * Método que Devuelve la Fecha del Fin del Trayecto
+	 * @return fechaFinTrayecto
+	 */
+	public Fecha getFechaFinTrayecto() {
+		return this.fechaFinTrayecto;
+	}
 }
 
diff --git a/src/es/markse/Trayecto.java b/src/es/markse/Trayecto.java
index ba3f09e..0578f6c 100644
--- a/src/es/markse/Trayecto.java
+++ b/src/es/markse/Trayecto.java
@@ -10,12 +10,12 @@ package es.markse;
  */
 public abstract class Trayecto{
 	
-	private Muelle muelleOrigen;
-	private Puerto puertoOrigen;
-	private Fecha fechaInicioTrayecto;
-	private Muelle muelleDestino;
-	private Puerto puertoDestino;
-	private Fecha fechaFinTrayecto;
+	protected final Muelle muelleOrigen;
+	protected final Puerto puertoOrigen;
+	protected final Fecha fechaInicioTrayecto;
+	protected final Muelle muelleDestino;
+	protected final Puerto puertoDestino;
+	protected final Fecha fechaFinTrayecto;
 	
 	/**
 	 * Constructor del objeto Trayecto.
@@ -101,9 +101,9 @@ public abstract class Trayecto{
 	
 	/**
 	 * Metodo abstracto para calcular el nuevo coste de 
-	 * @return
+	 * @return coste del trayecto
 	 */
-	public abstract double costeTrayecto();
+	protected abstract double costeTrayecto();
 	
 	/**
 	 * 1.1.23 Método que devuelve la Distancia calculada en Millas Marinas entre 2 Muelles Distintos
@@ -144,46 +144,35 @@ public abstract class Trayecto{
 	 * Método que Devuelve el Muelle de Origen
 	 * @return muelleOrigen
 	 */
-	public Muelle getMuelleOrigen() {
-		return this.muelleOrigen;
-	}
+	public abstract Muelle getMuelleOrigen();
 	
 	/**
 	 * Método que Devuelve el Muelle de Destino
 	 * @return muelleDestino
 	 */
-	public Muelle getMuelleDestino() {
-		return this.muelleDestino;
-	}
+	public abstract Muelle getMuelleDestino();
+	
 	/**
 	 * Método que Devuelve el Puerto de Origen
 	 * @return puertoOrigen
 	 */
+	public abstract Puerto getPuertoOrigen();
 	
-	public Puerto getPuertoOrigen() {
-		return this.puertoOrigen;
-	}
 	/**
 	 * Método que Devuelve el Puerto de Destino
 	 * @return puertoDestino
 	 */
-	public Puerto getPuertoDestino() {
-		return this.puertoDestino;
-	}
+	public abstract Puerto getPuertoDestino();
 	
 	/**
 	 * Método que Devuelve la Fecha del Inicio del Trayecto
 	 * @return fechaInicioTrayecto
 	 */
-	public Fecha getFechaInicioTrayecto() {
-		return this.fechaInicioTrayecto;
-	}
+	public abstract Fecha getFechaInicioTrayecto();
 	
 	/**
 	 * Método que Devuelve la Fecha del Fin del Trayecto
 	 * @return fechaFinTrayecto
 	 */
-	public Fecha getFechaFinTrayecto() {
-		return this.fechaFinTrayecto;
-	}
+	public abstract Fecha getFechaFinTrayecto();
 }
\ No newline at end of file
-- 
GitLab