/** * Created on 30.03.2005 * * @author Jens Guenther */ package de.unirostock.FactoryMethod.example; public class SailingBoatPlan extends ShipServicePlan { /** * * @uml.property name="itsShip" * @uml.associationEnd inverse="sailingBoatPlan:de.unirostock.FactoryMethod.example.SailingBoat" multiplicity="(1 1)" */ private SailingBoat itsShip; public SailingBoatPlan( SailingBoat ship ){ itsShip = ship; } public boolean isShipNeedsRepair(){ return itsShip.isSailsNeedsRepair() || itsShip.isHullNeedRepair(); } public String[] getNeedOfRepairParts(){ int numOfRepairs = itsShip.isSailsNeedsRepair()? 1 : 0; numOfRepairs = itsShip.isHullNeedRepair()? numOfRepairs+1 : numOfRepairs; String[] parts = new String[numOfRepairs]; if( itsShip.isSailsNeedsRepair() & itsShip.isHullNeedRepair()){ parts[0] = "Segel"; parts[1] = "Schiffsrumpf"; return parts; } if( itsShip.isSailsNeedsRepair()){ parts[0] = "Segel"; return parts; } if( itsShip.isHullNeedRepair()){ parts[0] = "Schiffsrumpf"; return parts; } return parts; } public void repair(){ if( itsShip.isSailsNeedsRepair()) itsShip.repairSails(); if( itsShip.isHullNeedRepair()) itsShip.repairHull(); } }