# Hierarchy For All Packages

Package Hierarchies:

- it.polimi.ingsw.is25am31,
- it.polimi.ingsw.is25am31.controller,
- it.polimi.ingsw.is25am31.customerrors,
- it.polimi.ingsw.is25am31.model,
- it.polimi.ingsw.is25am31.model.cards,
- it.polimi.ingsw.is25am31.model.components,
- it.polimi.ingsw.is25am31.model.gameboard,
- it.polimi.ingsw.is25am31.model.player,
- it.polimi.ingsw.is25am31.network,
- it.polimi.ingsw.is25am31.network.rmi.client,
- it.polimi.ingsw.is25am31.network.rmi.server,
- it.polimi.ingsw.is25am31.network.socket.client,
- it.polimi.ingsw.is25am31.network.socket.clientServerMessages,
- it.polimi.ingsw.is25am31.network.socket.server,
- it.polimi.ingsw.is25am31.network.socket.serverClientMessages,
- it.polimi.ingsw.is25am31.view,
- it.polimi.ingsw.is25am31.view.gui,
- it.polimi.ingsw.is25am31.view.tui,
- it.polimi.ingsw.is25am31.view.tui.input

## Class Hierarchy

- java.lang.Object
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.AbandonRaceCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - javafx.application.Application
    - it.polimi.ingsw.is25am31.view.gui.Gui
  - it.polimi.ingsw.is25am31.network.AsyncRunner
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.AttachComponentCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.model.cards.CannonHit (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.model.cards.Card (implements java.io.Serializable)
    - it.polimi.ingsw.is25am31.model.cards.AbandonedShipCard
    - it.polimi.ingsw.is25am31.model.cards.AbandonedStationCard
    - it.polimi.ingsw.is25am31.model.cards.CombatZoneCard
    - it.polimi.ingsw.is25am31.model.cards.EpidemicCard
    - it.polimi.ingsw.is25am31.model.cards.MeteorSwarmCard
    - it.polimi.ingsw.is25am31.model.cards.OpenSpaceCard
    - it.polimi.ingsw.is25am31.model.cards.PiratesCard
    - it.polimi.ingsw.is25am31.model.cards.PlanetsCard
    - it.polimi.ingsw.is25am31.model.cards.SlaversCard
    - it.polimi.ingsw.is25am31.model.cards.SmugglersCard
    - it.polimi.ingsw.is25am31.model.cards.StardustCard
  - it.polimi.ingsw.is25am31.model.cards.CardFactory
  - it.polimi.ingsw.is25am31.view.gui.CardManagerController
  - it.polimi.ingsw.is25am31.view.gui.CardViewAssemble
  - it.polimi.ingsw.is25am31.network.ClientData
  - it.polimi.ingsw.is25am31.view.ClientModel
  - it.polimi.ingsw.is25am31.view.gui.CloseStageManager
  - it.polimi.ingsw.is25am31.view.tui.input.CommandHandler
  - it.polimi.ingsw.is25am31.view.tui.input.CommandParser
  - it.polimi.ingsw.is25am31.model.components.Component (implements java.io.Serializable)
    - it.polimi.ingsw.is25am31.model.components.AlienLifeSupport
    - it.polimi.ingsw.is25am31.model.components.BatteryComponent
    - it.polimi.ingsw.is25am31.model.components.Cabin
    - it.polimi.ingsw.is25am31.model.components.Cannon
    - it.polimi.ingsw.is25am31.model.components.CargoHold
    - it.polimi.ingsw.is25am31.model.components.Engine
    - it.polimi.ingsw.is25am31.model.components.MainCabin
    - it.polimi.ingsw.is25am31.model.components.ShieldGenerator
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ConnectionResponseCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.model.cards.Context
  - it.polimi.ingsw.is25am31.model.cards.ContextValidator
  - it.polimi.ingsw.is25am31.controller.Controller
  - it.polimi.ingsw.is25am31.controller.ControllerManager
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.CreateGameCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.CrewPlacingPhaseCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.view.gui.CrewSelectionController
  - it.polimi.ingsw.is25am31.model.gameboard.CurrentPhase
  - it.polimi.ingsw.is25am31.view.gui.Dashboard
  - it.polimi.ingsw.is25am31.view.gui.Dashboard2
  - it.polimi.ingsw.is25am31.model.cards.Deck
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.DiceResultCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.DrawCardCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.DrawFaceDownComponentCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.DrawFaceUpComponentCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.DrawFromReservedCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.EffectResolutionCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.EndAssemblePhaseCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.EndCrewPlacingPhaseCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ExceptionCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.view.gui.FinalStageController
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.FinishFinalHourglassCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.FlightPhaseCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.model.Game
  - it.polimi.ingsw.is25am31.model.gameboard.Gameboard (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.view.gui.GameSelectorController
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.GetFaceUpComponentListCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.GetSubDeckCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.view.gui.GuiRenderer (implements it.polimi.ingsw.is25am31.view.UiRenderer)
  - it.polimi.ingsw.is25am31.controller.HourGlass (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.IncrementCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.JoinGameCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.LeaveGameCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.LockClientCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.Main
  - it.polimi.ingsw.is25am31.model.cards.Meteor (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.NewLeaderCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.NotifyDefeatCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.view.gui.OpponentShipController
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.PingCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.PingCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.PlaceCrewMemberCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.PlaceRocketCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.model.player.Player (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.PlayerJoinedCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.PutDownComponentCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - java.rmi.server.RemoteObject (implements java.rmi.Remote, java.io.Serializable)
    - java.rmi.server.RemoteServer
      - java.rmi.server.UnicastRemoteObject
        - it.polimi.ingsw.is25am31.network.rmi.client.RmiClient (implements it.polimi.ingsw.is25am31.network.VirtualView)
        - it.polimi.ingsw.is25am31.network.rmi.server.RmiServer (implements it.polimi.ingsw.is25am31.network.VirtualServer)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.RemoveComponentCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.model.player.Rocket (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.RollDiceCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.RoundResultCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.view.gui.SelectedTileController
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.SetCardContextCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.SetEffectContextCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.SetGameLevelCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.SetGameLevelCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.SetMaxPlayersCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.SetNicknameCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.SetNicknameCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.SetUuidCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.SharedRmiSocket
  - it.polimi.ingsw.is25am31.model.player.Ship (implements java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowCardCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowComponentCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowFaceUpComponentListCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowFinalRankingCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowGameListCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowSecondsLeftCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowSecondsLeftForGuiCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ShowShipCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowShipCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowSubDeckCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ShowUpdateCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.client.SocketClient (implements it.polimi.ingsw.is25am31.network.VirtualView)
  - it.polimi.ingsw.is25am31.network.socket.server.SocketClientHandler (implements it.polimi.ingsw.is25am31.network.VirtualView)
  - it.polimi.ingsw.is25am31.network.socket.server.SocketServer (implements it.polimi.ingsw.is25am31.network.VirtualServer)
  - it.polimi.ingsw.is25am31.network.socket.client.SocketServerHandler (implements it.polimi.ingsw.is25am31.network.VirtualServer)
  - it.polimi.ingsw.is25am31.view.gui.Stage2Controller
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.StartAssemblingPhaseCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.StartFinalHourGlassCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.StartGameCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.StartHourGlassCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - it.polimi.ingsw.is25am31.customerrors.NameErrorException
      - java.lang.RuntimeException
        - it.polimi.ingsw.is25am31.customerrors.NoCardsLeftException
        - it.polimi.ingsw.is25am31.customerrors.PingErrorException
  - it.polimi.ingsw.is25am31.model.components.Tiles
  - it.polimi.ingsw.is25am31.view.tui.TuiRenderer (implements it.polimi.ingsw.is25am31.view.UiRenderer)
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.TurnChangeCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.UpdateHandler
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.UpdatePositionsCommand (implements java.io.Serializable, it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand)
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ViewGameCommand (implements it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand, java.io.Serializable)
  - it.polimi.ingsw.is25am31.view.gui.WaitingRoomController

## Interface Hierarchy

- it.polimi.ingsw.is25am31.network.AsyncRunner.SafeRunnable
- java.rmi.Remote
  - it.polimi.ingsw.is25am31.network.VirtualServer
  - it.polimi.ingsw.is25am31.network.VirtualView
- java.io.Serializable
  - it.polimi.ingsw.is25am31.network.socket.clientServerMessages.ClientServerCommand
  - it.polimi.ingsw.is25am31.network.socket.serverClientMessages.ServerClientCommand
- it.polimi.ingsw.is25am31.view.UiRenderer

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - it.polimi.ingsw.is25am31.model.components.AlienColor
    - it.polimi.ingsw.is25am31.view.ClientState
    - it.polimi.ingsw.is25am31.model.components.Color
    - it.polimi.ingsw.is25am31.network.ConnectionResponse (implements java.io.Serializable)
    - it.polimi.ingsw.is25am31.model.components.Connector (implements java.io.Serializable)
    - it.polimi.ingsw.is25am31.model.cards.EffectType
    - it.polimi.ingsw.is25am31.model.components.Good
    - it.polimi.ingsw.is25am31.model.components.OrientationShield
    - it.polimi.ingsw.is25am31.model.gameboard.Phase
    - it.polimi.ingsw.is25am31.model.components.Side
    - it.polimi.ingsw.is25am31.model.cards.Size
    - it.polimi.ingsw.is25am31.network.UpdateMessage