/** * Created on 30.03.2005 * * @author Jens Guenther */ package de.unirostock.FactoryMethod.example; public class OilTankerPlan extends ShipServicePlan { /** * * @uml.property name="itsShip" * @uml.associationEnd inverse="oilTankerPlan:de.unirostock.FactoryMethod.example.OilTanker" multiplicity="(1 1)" */ private OilTanker itsShip; public OilTankerPlan( OilTanker ship ){ itsShip = ship; } public boolean isShipNeedsRepair(){ return itsShip.isEngineNeedRepair() || itsShip.isOilTanksNeedsRepair(); } public String[] getNeedOfRepairParts(){ int numOfRepairs = itsShip.isEngineNeedRepair()? 1 : 0; numOfRepairs = itsShip.isOilTanksNeedsRepair()? numOfRepairs+1 : numOfRepairs; String[] parts = new String[numOfRepairs]; if( itsShip.isEngineNeedRepair() & itsShip.isOilTanksNeedsRepair()){ parts[0] = "Maschine"; parts[1] = "Öltanks"; return parts; } if( itsShip.isEngineNeedRepair()){ parts[0] = "Maschine"; return parts; } if( itsShip.isOilTanksNeedsRepair()){ parts[0] = "Öltanks"; return parts; } return parts; } public void repair(){ if( itsShip.isEngineNeedRepair()) itsShip.repairEngine(); if( itsShip.isOilTanksNeedsRepair()) itsShip.repairOilTanks(); } }