private void unload() {
        boolean loading = false;
        Dispatcher.informShipMoored(name);
        try {
            lock.lock();
            log.info(Dispatcher.informShipAction(name, loading));
            if ((port.getCapacity() - port.getLoading() >= cargo)) {
                port.increaseLoading(cargo);
                cargo = 0;
            } else {
                log.info(Dispatcher.rejectShip(name));
            }
        } finally {
            log.info(Dispatcher.informShipFinished(name, loading));
            Dispatcher.informShipSailingAway(name);
            lock.unlock();
            Dispatcher.makeReport(this, port);
        }

    }