From: Stefan F. <ste...@us...> - 2011-10-14 04:57:13
|
rails/algorithms/NetworkCompanyGraph.java | 14 rails/algorithms/NetworkGraphBuilder.java | 20 rails/algorithms/NetworkIterator.java | 4 rails/algorithms/NetworkTrain.java | 10 rails/algorithms/NetworkVertex.java | 8 rails/algorithms/RevenueAdapter.java | 34 rails/algorithms/RevenueBonus.java | 28 rails/algorithms/RevenueBonusTemplate.java | 10 rails/algorithms/RevenueManager.java | 4 rails/common/DisplayBuffer.java | 6 rails/common/parser/ConfigurableComponentI.java | 4 rails/game/Bank.java | 63 - rails/game/BaseToken.java | 17 rails/game/Bonus.java | 12 rails/game/BonusToken.java | 15 rails/game/CashHolder.java | 26 rails/game/Certificate.java | 7 rails/game/Company.java | 51 rails/game/CompanyI.java | 115 -- rails/game/CompanyManager.java | 2 rails/game/CompanyManagerI.java | 13 rails/game/CompanyType.java | 17 rails/game/CompanyTypeI.java | 5 rails/game/EndOfGameRound.java | 2 rails/game/Game.java | 5 rails/game/GameManager.java | 218 ++-- rails/game/GameManagerI.java | 252 ---- rails/game/MapHex.java | 159 +-- rails/game/MapManager.java | 5 rails/game/OperatingRound.java | 271 ++--- rails/game/Phase.java | 19 rails/game/PhaseI.java | 45 rails/game/PhaseManager.java | 22 rails/game/Player.java | 65 - rails/game/PlayerManager.java | 14 rails/game/Portfolio.java | 734 -------------- rails/game/PrivateCompany.java | 94 - rails/game/PrivateCompanyI.java | 71 - rails/game/PublicCertificate.java | 39 rails/game/PublicCertificateI.java | 87 - rails/game/PublicCompany.java | 197 ++- rails/game/PublicCompanyI.java | 358 ------ rails/game/ReportBuffer.java | 12 rails/game/Round.java | 96 - rails/game/ShareSellingRound.java | 49 rails/game/StartItem.java | 38 rails/game/StartPacket.java | 4 rails/game/StartRound.java | 10 rails/game/StartRound_1830.java | 4 rails/game/StartRound_1835.java | 2 rails/game/StockMarket.java | 32 rails/game/StockMarketI.java | 18 rails/game/StockRound.java | 163 +-- rails/game/StockSpace.java | 31 rails/game/StockSpaceI.java | 16 rails/game/Stop.java | 66 - rails/game/SwitchableUIRound.java | 2 rails/game/Tile.java | 10 rails/game/TileI.java | 4 rails/game/TileManager.java | 2 rails/game/Token.java | 52 rails/game/TokenHolder.java | 51 rails/game/TokenI.java | 26 rails/game/Train.java | 49 rails/game/TrainCertificateType.java | 8 rails/game/TrainI.java | 80 - rails/game/TrainManager.java | 5 rails/game/TrainType.java | 4 rails/game/TreasuryShareRound.java | 50 rails/game/action/BuyBonusToken.java | 22 rails/game/action/BuyCertificate.java | 13 rails/game/action/BuyPrivate.java | 8 rails/game/action/BuyStartItem.java | 4 rails/game/action/BuyTrain.java | 33 rails/game/action/DiscardTrain.java | 18 rails/game/action/LayBonusToken.java | 2 rails/game/action/MergeCompanies.java | 28 rails/game/action/PossibleAction.java | 4 rails/game/action/PossibleORAction.java | 6 rails/game/action/ReachDestinations.java | 22 rails/game/action/RepayLoans.java | 8 rails/game/action/SellShares.java | 4 rails/game/action/StartCompany.java | 8 rails/game/action/TakeLoans.java | 8 rails/game/correct/CashCorrectionAction.java | 10 rails/game/correct/CashCorrectionManager.java | 19 rails/game/correct/ClosePrivate.java | 6 rails/game/correct/MapCorrectionManager.java | 2 rails/game/model/AbstractModel.java | 40 rails/game/model/AbstractOwnable.java | 27 rails/game/model/BaseTokensModel.java | 10 rails/game/model/BonusModel.java | 2 rails/game/model/CalculatedMoneyModel.java | 11 rails/game/model/CashModel.java | 22 rails/game/model/CashOwner.java | 11 rails/game/model/CertificateCountModel.java | 14 rails/game/model/CertificatesModel.java | 98 + rails/game/model/DirectCashOwner.java | 15 rails/game/model/DirectOwner.java | 45 rails/game/model/Holder.java | 37 rails/game/model/HolderModel.java | 70 + rails/game/model/Model.java | 9 rails/game/model/MoneyModel.java | 5 rails/game/model/Observer.java | 14 rails/game/model/Ownable.java | 19 rails/game/model/Owner.java | 29 rails/game/model/OwnerState.java | 16 rails/game/model/Owners.java | 75 + rails/game/model/Portfolio.java | 630 ++++++++++++ rails/game/model/PortfolioCashOwner.java | 21 rails/game/model/PortfolioOwner.java | 35 rails/game/model/PresidentModel.java | 13 rails/game/model/PriceModel.java | 11 rails/game/model/PrivatesModel.java | 9 rails/game/model/SingleOwner.java | 55 + rails/game/model/TrainsModel.java | 45 rails/game/model/View.java | 12 rails/game/special/LocatedBonus.java | 2 rails/game/special/SellBonusToken.java | 17 rails/game/special/SpecialProperty.java | 38 rails/game/special/SpecialPropertyI.java | 17 rails/game/special/SpecialRight.java | 2 rails/game/special/SpecialTileLay.java | 2 rails/game/special/SpecialTokenLay.java | 10 rails/game/specific/_1825/OperatingRound_1825.java | 14 rails/game/specific/_1825/PublicCompany_1825.java | 4 rails/game/specific/_1825/StartRound_1825.java | 2 rails/game/specific/_1825/StockRound_1825.java | 15 rails/game/specific/_1835/FoldIntoPrussian.java | 22 rails/game/specific/_1835/GameManager_1835.java | 4 rails/game/specific/_1835/OperatingRound_1835.java | 32 rails/game/specific/_1835/PrussianFormationRound.java | 77 - rails/game/specific/_1835/StockRound_1835.java | 26 rails/game/specific/_1851/BirminghamTileModifier.java | 4 rails/game/specific/_1851/StartRound_1851.java | 2 rails/game/specific/_1856/CGRFormationRound.java | 92 - rails/game/specific/_1856/OperatingRound_1856.java | 49 rails/game/specific/_1856/PublicCompany_1856.java | 4 rails/game/specific/_1856/PublicCompany_CGR.java | 20 rails/game/specific/_1856/ShareSellingRound_1856.java | 4 rails/game/specific/_1856/StockRound_1856.java | 27 rails/game/specific/_1880/OperatingRound_1880.java | 4 rails/game/specific/_1880/StartRound_1880.java | 4 rails/game/specific/_1880/StockRound_1880.java | 6 rails/game/specific/_1889/OperatingRound_1889.java | 6 rails/game/specific/_18AL/AssignNamedTrains.java | 30 rails/game/specific/_18AL/NameTrains.java | 8 rails/game/specific/_18AL/NameableTrain.java | 10 rails/game/specific/_18AL/NamedTrainRevenueModifier.java | 8 rails/game/specific/_18AL/NamedTrainToken.java | 2 rails/game/specific/_18AL/OperatingRound_18AL.java | 10 rails/game/specific/_18EU/FinalMinorExchangeRound.java | 16 rails/game/specific/_18EU/GameManager_18EU.java | 14 rails/game/specific/_18EU/OffBoardRevenueModifier.java | 4 rails/game/specific/_18EU/OperatingRound_18EU.java | 43 rails/game/specific/_18EU/StartCompany_18EU.java | 18 rails/game/specific/_18EU/StartRound_18EU.java | 4 rails/game/specific/_18EU/StockRound_18EU.java | 141 +- rails/game/specific/_18GA/OperatingRound_18GA.java | 11 rails/game/specific/_18Kaas/RuhrRevenueModifier.java | 4 rails/game/specific/_18TN/OperatingRound_18TN.java | 14 rails/game/specific/_18TN/PublicCompany_18TN.java | 4 rails/game/state/AbstractItem.java | 10 rails/game/state/AbstractState.java | 73 - rails/game/state/ArrayListMultimapState.java | 12 rails/game/state/ArrayListState.java | 8 rails/game/state/ChangeSet.java | 8 rails/game/state/ChangeStack.java | 9 rails/game/state/DoubleMapChange.java | 59 - rails/game/state/Formatter.java | 7 rails/game/state/GenericState.java | 6 rails/game/state/GenericStateChange.java | 35 rails/game/state/HashMultimapState.java | 43 rails/game/state/Holder.java | 16 rails/game/state/MoveUtils.java | 50 rails/game/state/Moveable.java | 9 rails/game/state/Notifiable.java | 5 rails/game/state/Observable.java | 20 rails/game/state/PriceMove.java | 3 rails/game/state/PriceTokenMove.java | 7 rails/game/state/State.java | 5 rails/game/state/StateChange.java | 35 rails/game/state/StateManager.java | 93 + rails/game/state/TileMove.java | 4 rails/ui/swing/GameSetupWindow.java | 2 rails/ui/swing/GameStatus.java | 25 rails/ui/swing/GameUIManager.java | 16 rails/ui/swing/GridPanel.java | 13 rails/ui/swing/ORPanel.java | 28 rails/ui/swing/ORUIManager.java | 41 rails/ui/swing/ReportWindow.java | 4 rails/ui/swing/StatusWindow.java | 2 rails/ui/swing/TokenIcon.java | 6 rails/ui/swing/UpgradesPanel.java | 42 rails/ui/swing/elements/Field.java | 26 rails/ui/swing/elements/GUIStockSpace.java | 17 rails/ui/swing/elements/ViewObject.java | 7 rails/ui/swing/gamespecific/_1835/GameUIManager_1835.java | 4 rails/ui/swing/gamespecific/_1835/StatusWindow_1835.java | 6 rails/ui/swing/gamespecific/_18AL/NameTrainsDialog.java | 2 rails/ui/swing/gamespecific/_18EU/GameStatus_18EU.java | 10 rails/ui/swing/gamespecific/_18EU/GameUIManager_18EU.java | 10 rails/ui/swing/gamespecific/_18EU/StatusWindow_18EU.java | 10 rails/ui/swing/hexmap/GUIHex.java | 43 rails/ui/swing/hexmap/HexMap.java | 4 rails/util/GameFileIO.java | 4 rails/util/RunGame.java | 4 rails/util/SequenceUtil.java | 18 rails/util/Util.java | 31 test/GameTestServlet.java | 30 test/StockMarketTestServlet.java | 8 test/StockTest.java | 12 212 files changed, 3361 insertions(+), 4079 deletions(-) New commits: commit a37c54431b540d1b0b169a9cb774c1051fa84c85 Author: Stefan Frey <ste...@we...> Date: Sat Oct 1 07:51:20 2011 +0200 First checkin to Rails 2.0 without compile errors. Further redesigning of basic Rails concepts. Mainly effected are Portfolio and Holding of other objects by defining owner and ownable interfaces and derived abstract classes. Removed many of the superflous postfix I-interfaces (e.g. GameManagerI etc.). diff --git a/rails/algorithms/NetworkCompanyGraph.java b/rails/algorithms/NetworkCompanyGraph.java index bd93113..00469dd 100644 --- a/rails/algorithms/NetworkCompanyGraph.java +++ b/rails/algorithms/NetworkCompanyGraph.java @@ -16,8 +16,8 @@ import org.jgrapht.graph.SimpleGraph; import org.jgrapht.graph.Subgraph; import rails.algorithms.RevenueAdapter.EdgeTravel; -import rails.game.PublicCompanyI; -import rails.game.TokenI; +import rails.game.PublicCompany; +import rails.game.Token; /** * This class stores and creates the various graphs @@ -29,7 +29,7 @@ public class NetworkCompanyGraph { Logger.getLogger(NetworkCompanyGraph.class.getPackage().getName()); private final NetworkGraphBuilder graphBuilder; - private final PublicCompanyI company; + private final PublicCompany company; private SimpleGraph<NetworkVertex, NetworkEdge> routeGraph; private SimpleGraph<NetworkVertex, NetworkEdge> revenueGraph; @@ -40,7 +40,7 @@ public class NetworkCompanyGraph { private Collection<NetworkVertex> protectedVertices; - private NetworkCompanyGraph(NetworkGraphBuilder graphBuilder, PublicCompanyI company) { + private NetworkCompanyGraph(NetworkGraphBuilder graphBuilder, PublicCompany company) { this.graphBuilder = graphBuilder; this.company = company; this.routeGraph = null; @@ -48,7 +48,7 @@ public class NetworkCompanyGraph { this.phase2Graph = null; } - public static NetworkCompanyGraph create(NetworkGraphBuilder graphBuilder, PublicCompanyI company) { + public static NetworkCompanyGraph create(NetworkGraphBuilder graphBuilder, PublicCompany company) { return new NetworkCompanyGraph(graphBuilder, company); } @@ -112,9 +112,9 @@ public class NetworkCompanyGraph { return graph; } - public List<NetworkVertex> getCompanyBaseTokenVertexes(PublicCompanyI company) { + public List<NetworkVertex> getCompanyBaseTokenVertexes(PublicCompany company) { List<NetworkVertex> vertexes = new ArrayList<NetworkVertex>(); - for (TokenI token:company.getTokens()){ + for (Token token:company.getTokens()){ NetworkVertex vertex = graphBuilder.getVertex(token); if (vertex == null) continue; vertexes.add(vertex); diff --git a/rails/algorithms/NetworkGraphBuilder.java b/rails/algorithms/NetworkGraphBuilder.java index 4246dc6..2dd1f0e 100644 --- a/rails/algorithms/NetworkGraphBuilder.java +++ b/rails/algorithms/NetworkGraphBuilder.java @@ -27,15 +27,15 @@ import com.jgraph.layout.organic.JGraphFastOrganicLayout; import rails.game.BaseToken; import rails.game.Stop; -import rails.game.GameManagerI; +import rails.game.GameManager; import rails.game.MapHex; import rails.game.MapManager; -import rails.game.PublicCompanyI; +import rails.game.PublicCompany; import rails.game.Station; import rails.game.TileI; -import rails.game.TokenHolder; -import rails.game.TokenI; +import rails.game.Token; import rails.game.Track; +import rails.game.model.Owner; public final class NetworkGraphBuilder implements Iterable<NetworkVertex> { @@ -53,7 +53,7 @@ public final class NetworkGraphBuilder implements Iterable<NetworkVertex> { mapVertexes = new HashMap<String, NetworkVertex> (); } - public static NetworkGraphBuilder create(GameManagerI gameManager) { + public static NetworkGraphBuilder create(GameManager gameManager) { NetworkGraphBuilder graphBuilder = new NetworkGraphBuilder(); graphBuilder.generateGraph(gameManager.getMapManager(), gameManager.getRevenueManager()); return graphBuilder; @@ -175,11 +175,11 @@ public final class NetworkGraphBuilder implements Iterable<NetworkVertex> { return mapVertexes.get(identVertex); } - public NetworkVertex getVertex(TokenI token) { + public NetworkVertex getVertex(Token token) { if (!(token instanceof BaseToken)) return null; - TokenHolder holder = token.getHolder(); - if (!(holder instanceof Stop)) return null; - Stop city = (Stop)holder; + Owner owner = token.getOwner(); + if (!(owner instanceof Stop)) return null; + Stop city = (Stop)owner; MapHex hex = city.getHolder(); Station station = city.getRelatedStation(); return getVertex(hex, station); @@ -212,7 +212,7 @@ public final class NetworkGraphBuilder implements Iterable<NetworkVertex> { } public static List<MapHex> getTokenableStationHexes(Graph<NetworkVertex, NetworkEdge> graph, - PublicCompanyI company){ + PublicCompany company){ List<MapHex> hexes = new ArrayList<MapHex>(); for(NetworkVertex vertex:graph.vertexSet()) { Stop city = vertex.getCity(); diff --git a/rails/algorithms/NetworkIterator.java b/rails/algorithms/NetworkIterator.java index f4029e8..9f9026a 100644 --- a/rails/algorithms/NetworkIterator.java +++ b/rails/algorithms/NetworkIterator.java @@ -10,7 +10,7 @@ import org.apache.log4j.Logger; import org.jgrapht.*; import org.jgrapht.traverse.*; -import rails.game.PublicCompanyI; +import rails.game.PublicCompany; public class NetworkIterator extends AbstractGraphIterator<NetworkVertex, NetworkEdge> { @@ -48,7 +48,7 @@ public class NetworkIterator extends * Returns NetworkIterator for specific company */ public NetworkIterator(Graph<NetworkVertex, NetworkEdge> graph, NetworkVertex startVertex, - PublicCompanyI company) { + PublicCompany company) { super(); if (graph == null) diff --git a/rails/algorithms/NetworkTrain.java b/rails/algorithms/NetworkTrain.java index 7536686..9b2a9cf 100644 --- a/rails/algorithms/NetworkTrain.java +++ b/rails/algorithms/NetworkTrain.java @@ -3,7 +3,7 @@ package rails.algorithms; import org.apache.log4j.Logger; -import rails.game.TrainI; +import rails.game.Train; import rails.game.TrainType; public final class NetworkTrain implements Comparable<NetworkTrain>{ @@ -18,11 +18,11 @@ public final class NetworkTrain implements Comparable<NetworkTrain>{ private final int multiplyMinors; private final boolean isHTrain; private String trainName; - private final TrainI railsTrain; + private final Train railsTrain; private NetworkTrain(int majors, int minors, boolean ignoreMinors, - int multiplyMajors, int multiplyMinors, boolean isHTrain, String trainName, TrainI train) { + int multiplyMajors, int multiplyMinors, boolean isHTrain, String trainName, Train train) { this.majors = majors; this.minors = minors; this.ignoreMinors = ignoreMinors; @@ -34,7 +34,7 @@ public final class NetworkTrain implements Comparable<NetworkTrain>{ log.info("Created NetworkTrain " + this.toString() + " / " + this.attributes()); } - static NetworkTrain createFromRailsTrain(TrainI railsTrain){ + static NetworkTrain createFromRailsTrain(Train railsTrain){ int majors = railsTrain.getMajorStops(); int minors = railsTrain.getMinorStops(); if (railsTrain.getTownCountIndicator() == 0) { @@ -139,7 +139,7 @@ public final class NetworkTrain implements Comparable<NetworkTrain>{ return trainName; } - public TrainI getRailsTrain() { + public Train getRailsTrain() { return railsTrain; } diff --git a/rails/algorithms/NetworkVertex.java b/rails/algorithms/NetworkVertex.java index de85f2c..cfbe510 100644 --- a/rails/algorithms/NetworkVertex.java +++ b/rails/algorithms/NetworkVertex.java @@ -77,7 +77,7 @@ public final class NetworkVertex implements Comparable<NetworkVertex> { } /** constructor for public company hq */ - public NetworkVertex(PublicCompanyI company) { + public NetworkVertex(PublicCompany company) { this(VertexType.HQ, "HQ"); } @@ -219,7 +219,7 @@ public final class NetworkVertex implements Comparable<NetworkVertex> { * Initialize for rails vertexes * @return true = can stay inside the network, false = has to be removed */ - public boolean initRailsVertex(PublicCompanyI company) { + public boolean initRailsVertex(PublicCompany company) { // side vertices use the defaults, virtuals cannot use this function if (virtual || type == VertexType.SIDE) return true; @@ -264,7 +264,7 @@ public final class NetworkVertex implements Comparable<NetworkVertex> { } - public void setRailsVertexValue(PhaseI phase) { + public void setRailsVertexValue(Phase phase) { // side vertices and virtuals cannot use this function if (virtual || type == VertexType.SIDE) return; @@ -310,7 +310,7 @@ public final class NetworkVertex implements Comparable<NetworkVertex> { * @param phase the current phase (with regard to values) */ public static void initAllRailsVertices(Graph<NetworkVertex, NetworkEdge> graph, - PublicCompanyI company, PhaseI phase) { + PublicCompany company, Phase phase) { // store vertices for removal List<NetworkVertex> verticesToRemove = new ArrayList<NetworkVertex>(); diff --git a/rails/algorithms/RevenueAdapter.java b/rails/algorithms/RevenueAdapter.java index 9df031a..931b668 100644 --- a/rails/algorithms/RevenueAdapter.java +++ b/rails/algorithms/RevenueAdapter.java @@ -18,11 +18,11 @@ import org.jgrapht.Graphs; import org.jgrapht.graph.SimpleGraph; import rails.common.LocalText; -import rails.game.GameManagerI; +import rails.game.GameManager; import rails.game.MapHex; -import rails.game.PhaseI; -import rails.game.PublicCompanyI; -import rails.game.TrainI; +import rails.game.Phase; +import rails.game.PublicCompany; +import rails.game.Train; import rails.game.TrainType; import rails.ui.swing.hexmap.HexMap; @@ -59,12 +59,12 @@ public final class RevenueAdapter implements Runnable { } // basic links, to be defined at creation - private final GameManagerI gameManager; + private final GameManager gameManager; private final RevenueManager revenueManager; private final NetworkGraphBuilder graphBuilder; private final NetworkCompanyGraph companyGraph; - private final PublicCompanyI company; - private final PhaseI phase; + private final PublicCompany company; + private final Phase phase; // basic components, defined empty at creation private SimpleGraph<NetworkVertex, NetworkEdge> graph; @@ -88,8 +88,8 @@ public final class RevenueAdapter implements Runnable { // revenue listener to communicate results private RevenueListener revenueListener; - public RevenueAdapter(GameManagerI gameManager, NetworkGraphBuilder graphBuilder, NetworkCompanyGraph companyGraph, - PublicCompanyI company, PhaseI phase){ + public RevenueAdapter(GameManager gameManager, NetworkGraphBuilder graphBuilder, NetworkCompanyGraph companyGraph, + PublicCompany company, Phase phase){ this.gameManager = gameManager; this.revenueManager = gameManager.getRevenueManager(); this.graphBuilder = graphBuilder; @@ -106,7 +106,7 @@ public final class RevenueAdapter implements Runnable { this.protectedVertices = new HashSet<NetworkVertex>(); } - public static RevenueAdapter createRevenueAdapter(GameManagerI gm, PublicCompanyI company, PhaseI phase) { + public static RevenueAdapter createRevenueAdapter(GameManager gm, PublicCompany company, Phase phase) { NetworkGraphBuilder nwGraph = NetworkGraphBuilder.create(gm); NetworkCompanyGraph companyGraph = NetworkCompanyGraph.create(nwGraph, company); RevenueAdapter ra = new RevenueAdapter(gm, nwGraph, companyGraph, company, phase); @@ -115,11 +115,11 @@ public final class RevenueAdapter implements Runnable { } - public PublicCompanyI getCompany() { + public PublicCompany getCompany() { return company; } - public PhaseI getPhase() { + public Phase getPhase() { return phase; } @@ -161,7 +161,7 @@ public final class RevenueAdapter implements Runnable { return trains; } - public boolean addTrain(TrainI railsTrain){ + public boolean addTrain(Train railsTrain){ NetworkTrain train = NetworkTrain.createFromRailsTrain(railsTrain); if (train == null) { return false; @@ -183,7 +183,7 @@ public final class RevenueAdapter implements Runnable { TrainType trainType = gameManager.getTrainManager().getTypeByName(trainString.trim()); if (trainType != null) { // string defines available trainType log.info("RA: found trainType" + trainType); - TrainI railsTrain = gameManager.getTrainManager().cloneTrain(trainType.getCertificateType()); + Train railsTrain = gameManager.getTrainManager().cloneTrain(trainType.getCertificateType()); return addTrain(railsTrain); } else { // otherwise interpret the train NetworkTrain train = NetworkTrain.createFromString(trainString); @@ -229,7 +229,7 @@ public final class RevenueAdapter implements Runnable { // define Trains company.getPortfolio().getTrainList(); - for (TrainI train:company.getPortfolio().getTrainList()) { + for (Train train:company.getPortfolio().getTrainList()) { addTrain(train); } @@ -529,7 +529,7 @@ public final class RevenueAdapter implements Runnable { rc.setDynamicModifiers(hasDynamicModifiers); } - public int getVertexValue(NetworkVertex vertex, NetworkTrain train, PhaseI phase) { + public int getVertexValue(NetworkVertex vertex, NetworkTrain train, Phase phase) { // base value int value = vertex.getValueByTrain(train); @@ -544,7 +544,7 @@ public final class RevenueAdapter implements Runnable { return value; } - public String getVertexValueAsString(NetworkVertex vertex, NetworkTrain train, PhaseI phase) { + public String getVertexValueAsString(NetworkVertex vertex, NetworkTrain train, Phase phase) { StringBuffer s = new StringBuffer(); // base value diff --git a/rails/algorithms/RevenueBonus.java b/rails/algorithms/RevenueBonus.java index 710128c..162f022 100644 --- a/rails/algorithms/RevenueBonus.java +++ b/rails/algorithms/RevenueBonus.java @@ -8,8 +8,8 @@ import java.util.Map; import org.apache.log4j.Logger; -import rails.game.PhaseI; -import rails.game.TrainI; +import rails.game.Phase; +import rails.game.Train; import rails.game.TrainType; public final class RevenueBonus { @@ -26,8 +26,8 @@ public final class RevenueBonus { // internal attributes private List<NetworkVertex> vertices; private List<TrainType> trainTypes; - private List<TrainI> trains; - private List<PhaseI> phases; + private List<Train> trains; + private List<Phase> phases; public RevenueBonus(int value, String name) { this.value = value; @@ -35,8 +35,8 @@ public final class RevenueBonus { vertices = new ArrayList<NetworkVertex>(); trainTypes = new ArrayList<TrainType>(); - trains = new ArrayList<TrainI>(); - phases = new ArrayList<PhaseI>(); + trains = new ArrayList<Train>(); + phases = new ArrayList<Phase>(); } public void addVertex(NetworkVertex vertex) { @@ -51,11 +51,11 @@ public final class RevenueBonus { trainTypes.add(trainType); } - public void addTrain(TrainI train) { + public void addTrain(Train train) { trains.add(train); } - public void addPhase(PhaseI phase) { + public void addPhase(Phase phase) { phases.add(phase); } @@ -75,11 +75,11 @@ public final class RevenueBonus { return trainTypes; } - public List<TrainI> getTrains() { + public List<Train> getTrains() { return trains; } - public List<PhaseI> getPhases() { + public List<Phase> getPhases() { return phases; } @@ -87,7 +87,7 @@ public final class RevenueBonus { return (vertices.size() == 1); } - public boolean addToRevenueCalculator(RevenueCalculator rc, int bonusId, List<NetworkVertex> allVertices, List<NetworkTrain> trains, PhaseI phase) { + public boolean addToRevenueCalculator(RevenueCalculator rc, int bonusId, List<NetworkVertex> allVertices, List<NetworkTrain> trains, Phase phase) { if (isSimpleBonus() || !phases.isEmpty() && !phases.contains(phase)) return false; // only non-simple bonuses and checks phase condition @@ -109,11 +109,11 @@ public final class RevenueBonus { return true; } - public boolean checkSimpleBonus(NetworkVertex vertex, TrainI train, PhaseI phase) { + public boolean checkSimpleBonus(NetworkVertex vertex, Train train, Phase phase) { return (isSimpleBonus() && vertices.contains(vertex) && checkConditions(train, phase)); } - public boolean checkComplexBonus(List<NetworkVertex> visitVertices, TrainI train, PhaseI phase) { + public boolean checkComplexBonus(List<NetworkVertex> visitVertices, Train train, Phase phase) { boolean result = !isSimpleBonus() && checkConditions(train, phase); if (result) { for (NetworkVertex vertex:vertices) { @@ -126,7 +126,7 @@ public final class RevenueBonus { return result; } - public boolean checkConditions(TrainI train, PhaseI phase) { + public boolean checkConditions(Train train, Phase phase) { boolean result = true; // check train diff --git a/rails/algorithms/RevenueBonusTemplate.java b/rails/algorithms/RevenueBonusTemplate.java index 23646f9..a4b5cfa 100644 --- a/rails/algorithms/RevenueBonusTemplate.java +++ b/rails/algorithms/RevenueBonusTemplate.java @@ -8,9 +8,9 @@ import org.apache.log4j.Logger; import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; -import rails.game.GameManagerI; +import rails.game.GameManager; import rails.game.MapHex; -import rails.game.PhaseI; +import rails.game.Phase; import rails.game.PhaseManager; import rails.game.TrainManager; import rails.game.TrainType; @@ -85,12 +85,12 @@ public final class RevenueBonusTemplate implements ConfigurableComponentI { /** * is not used, use toRevenueBonus instead */ - public void finishConfiguration(GameManagerI parent) + public void finishConfiguration(GameManager parent) throws ConfigurationException { throw new ConfigurationException("Use toRevenueBonus"); } - public RevenueBonus toRevenueBonus(MapHex hex, GameManagerI gm, NetworkGraphBuilder ngb) { + public RevenueBonus toRevenueBonus(MapHex hex, GameManager gm, NetworkGraphBuilder ngb) { log.info("Convert " + this); RevenueBonus bonus = new RevenueBonus(value, name); if (!convertVertices(bonus, ngb, hex)) { @@ -126,7 +126,7 @@ public final class RevenueBonusTemplate implements ConfigurableComponentI { private void convertPhases(RevenueBonus bonus, PhaseManager pm) { for (String identPhase:identPhases) { - PhaseI phase = pm.getPhaseByName(identPhase); + Phase phase = pm.getPhaseByName(identPhase); if (phase != null) { bonus.addPhase(phase); } diff --git a/rails/algorithms/RevenueManager.java b/rails/algorithms/RevenueManager.java index 87e0cf5..7b9d17e 100644 --- a/rails/algorithms/RevenueManager.java +++ b/rails/algorithms/RevenueManager.java @@ -11,7 +11,7 @@ import rails.common.LocalText; import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; -import rails.game.GameManagerI; +import rails.game.GameManager; import rails.game.state.AbstractItem; import rails.game.state.ArrayListState; @@ -100,7 +100,7 @@ public final class RevenueManager extends AbstractItem implements ConfigurableCo } - public void finishConfiguration(GameManagerI parent) + public void finishConfiguration(GameManager parent) throws ConfigurationException { for (ConfigurableComponentI modifier:configurableModifiers) { modifier.finishConfiguration(parent); diff --git a/rails/common/DisplayBuffer.java b/rails/common/DisplayBuffer.java index ea4ccc8..68ad46f 100644 --- a/rails/common/DisplayBuffer.java +++ b/rails/common/DisplayBuffer.java @@ -7,7 +7,7 @@ import java.util.List; import org.apache.log4j.Logger; import rails.game.GameManager; -import rails.game.GameManagerI; +import rails.game.GameManager; import rails.util.Util; /** @@ -51,7 +51,7 @@ public final class DisplayBuffer { } public static void add(String message, boolean autoDisplay) { - GameManagerI gm = GameManager.getInstance(); + GameManager gm = GameManager.getInstance(); DisplayBuffer instance = null; if (gm != null) instance = gm.getDisplayBuffer(); if (gm == null || instance == null) { @@ -75,7 +75,7 @@ public final class DisplayBuffer { } private static DisplayBuffer getInstance() { - GameManagerI gm = GameManager.getInstance(); + GameManager gm = GameManager.getInstance(); if (gm == null) { return null; } else { diff --git a/rails/common/parser/ConfigurableComponentI.java b/rails/common/parser/ConfigurableComponentI.java index 3427496..c0741f2 100644 --- a/rails/common/parser/ConfigurableComponentI.java +++ b/rails/common/parser/ConfigurableComponentI.java @@ -1,7 +1,7 @@ /* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/ConfigurableComponentI.java,v 1.7 2009/10/31 17:08:26 evos Exp $ */ package rails.common.parser; -import rails.game.GameManagerI; +import rails.game.GameManager; /** * Interface for rails.game components which can be configured from an XML @@ -31,7 +31,7 @@ public interface ConfigurableComponentI { * the 'child' to access any other object without the need to resort to * static calls where possible. */ - void finishConfiguration (GameManagerI parent) + void finishConfiguration (GameManager parent) throws ConfigurationException; } diff --git a/rails/game/Bank.java b/rails/game/Bank.java index 22b0a4c..e9da1b7 100644 --- a/rails/game/Bank.java +++ b/rails/game/Bank.java @@ -10,14 +10,20 @@ import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.model.CashModel; -import rails.game.model.AbstractModel; -import rails.game.model.Model; +import rails.game.model.CashOwner; +import rails.game.model.Portfolio; import rails.game.state.AbstractItem; import rails.game.state.BooleanState; import rails.util.*; -public class Bank extends AbstractItem implements CashHolder, ConfigurableComponentI { +public class Bank extends AbstractItem implements CashOwner, ConfigurableComponentI { + /** Specific portfolio names */ + public static final String IPO_NAME = "IPO"; + public static final String POOL_NAME = "Pool"; + public static final String SCRAPHEAP_NAME = "ScrapHeap"; + public static final String UNAVAILABLE_NAME = "Unavailable"; + /** Default limit of shares in the bank pool */ private static final int DEFAULT_BANK_AMOUNT = 12000; private static final String DEFAULT_MONEY_FORMAT = "$@"; @@ -54,10 +60,10 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon money = new CashModel(this); // Create the IPO and the Bank Pool. - ipo = new Portfolio(Portfolio.IPO_NAME, this); - pool = new Portfolio(Portfolio.POOL_NAME, this); - unavailable = new Portfolio(Portfolio.UNAVAILABLE_NAME, this); - scrapHeap = new Portfolio(Portfolio.SCRAPHEAP_NAME, this); + ipo = new Portfolio(ipo, IPO_NAME); + pool = new Portfolio(pool, POOL_NAME); + unavailable = new Portfolio(unavailable, UNAVAILABLE_NAME); + scrapHeap = new Portfolio(scrapHeap, SCRAPHEAP_NAME); String configFormat = Config.get("money_format"); if (Util.hasValue(configFormat) && configFormat.matches(".*@.*")) { @@ -88,33 +94,33 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon Tag bankTag = tag.getChild("Bank"); if (bankTag != null) { - money.setCash(bankTag.getAttributeAsInteger("amount", + money.set(bankTag.getAttributeAsInteger("amount", DEFAULT_BANK_AMOUNT)); } } - public void finishConfiguration (GameManagerI gameManager) { + public void finishConfiguration (GameManager gameManager) { ReportBuffer.add(LocalText.getText("BankSizeIs", - format(money.getCash()))); + format(money.value()))); // Add privates - List<PrivateCompanyI> privates = + List<PrivateCompany> privates = gameManager.getCompanyManager().getAllPrivateCompanies(); - for (PrivateCompanyI priv : privates) { + for (PrivateCompany priv : privates) { ipo.addPrivate(priv, -1); } // Add public companies - List<PublicCompanyI> companies = + List<PublicCompany> companies = gameManager.getCompanyManager().getAllPublicCompanies(); - for (PublicCompanyI comp : companies) { - for (PublicCertificateI cert : comp.getCertificates()) { + for (PublicCompany comp : companies) { + for (PublicCertificate cert : comp.getCertificates()) { if (cert.isInitiallyAvailable()) { - ipo.addCertificate(cert); + cert.moveTo(ipo); } else { - unavailable.addCertificate(cert); + cert.moveTo(unavailable); } } } @@ -134,8 +140,8 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon /** * @return Bank's current cash level */ - public int getCash() { - return money.getCash(); + public int getCashValue() { + return money.value(); } /** @@ -143,13 +149,13 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon */ public void addCash(int amount) { - money.addCash(amount); + money.add(amount); /* * Check if the bank has broken. In some games <0 could apply, so this * will become configurable. */ - if (money.getCash() <= 0 && !broken.booleanValue()) { + if (money.value() <= 0 && !broken.booleanValue()) { broken.set(true); money.setText(LocalText.getText("BROKEN")); GameManager.getInstance().registerBrokenBank(); @@ -174,7 +180,7 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon * @param Set Bank's cash. */ public void setCash(int i) { - money.setCash(i); + money.set(i); } public String getId() { @@ -185,10 +191,6 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon return money.getData(); } - public Model<String> getCashModel() { - return money; - } - public static String format(int amount) { // Replace @ with the amount String result = instance.moneyFormat.replaceFirst("@", String.valueOf(amount)); @@ -206,4 +208,13 @@ public class Bank extends AbstractItem implements CashHolder, ConfigurableCompon return result.toString(); } // end sfy 1889 + + public int getCash() { + return money.value(); + } + + public CashModel getCashModel() { + return money; + } + } diff --git a/rails/game/BaseToken.java b/rails/game/BaseToken.java index fb2b6bd..bba6edd 100644 --- a/rails/game/BaseToken.java +++ b/rails/game/BaseToken.java @@ -1,8 +1,3 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/BaseToken.java,v 1.4 2008/06/04 19:00:30 evos Exp $ - * - * Created on Jan 1, 2007 - * Change Log: - */ package rails.game; /** @@ -17,28 +12,30 @@ package rails.game; */ public class BaseToken extends Token { - PublicCompanyI company; + PublicCompany company; /** * Create a BaseToken. */ - public BaseToken(PublicCompanyI company) { + + // TODO: Seems that company is a duplicated reference to owner + public BaseToken(PublicCompany company) { super(); this.company = company; /* Initially. a BaseToken is always owned by a company. */ - setHolder(company); + this.moveTo(company); } public boolean isPlaced() { - return (holder instanceof Stop); + return (getOwner() instanceof Stop); } public String getId() { return company.getId(); } - public PublicCompanyI getCompany() { + public PublicCompany getCompany() { return company; } diff --git a/rails/game/Bonus.java b/rails/game/Bonus.java index cfafc5b..45da940 100644 --- a/rails/game/Bonus.java +++ b/rails/game/Bonus.java @@ -24,14 +24,16 @@ import rails.algorithms.RevenueStaticModifier; */ public class Bonus implements Closeable, RevenueStaticModifier { - private PublicCompanyI owner; + private PublicCompany owner; private List<MapHex> locations = null; private String name; private int value; - private String removingObjectDesc = null; + // TODO: What was the intention of those? +/* private String removingObjectDesc = null; private Object removingObject = null; - - public Bonus (PublicCompanyI owner, +*/ + + public Bonus (PublicCompany owner, String name, int value, List<MapHex> locations) { this.owner = owner; this.name = name; @@ -46,7 +48,7 @@ public class Bonus implements Closeable, RevenueStaticModifier { return false; } - public PublicCompanyI getOwner() { + public PublicCompany getOwner() { return owner; } diff --git a/rails/game/BonusToken.java b/rails/game/BonusToken.java index ee9c6a0..0d01a43 100644 --- a/rails/game/BonusToken.java +++ b/rails/game/BonusToken.java @@ -8,8 +8,6 @@ package rails.game; import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; -import rails.game.state.MoveUtils; -import rails.game.state.ObjectMove; import rails.util.Util; /** @@ -26,14 +24,15 @@ public class BonusToken extends Token implements Closeable, ConfigurableComponen String name; String removingObjectDesc = null; Object removingObject = null; - PublicCompanyI user = null; + PublicCompany user = null; /** * Create a BonusToken. */ + // TODO: Check if moveTo null is possible public BonusToken() { super(); - setHolder(null); + this.moveTo(null); } public void configureFromXML(Tag tag) throws ConfigurationException { @@ -56,7 +55,7 @@ public class BonusToken extends Token implements Closeable, ConfigurableComponen removingObjectDesc = bonusTokenTag.getAttributeAsString("removed"); } - public void finishConfiguration(GameManagerI gameManager) { + public void finishConfiguration(GameManager gameManager) { prepareForRemoval (gameManager.getPhaseManager()); } @@ -66,7 +65,7 @@ public class BonusToken extends Token implements Closeable, ConfigurableComponen * See prepareForRemovel(). */ public void close() { - MoveUtils.objectMove(this, holder.getTokens(), GameManager.getInstance().getBank().getScrapHeap().tokens); + this.moveTo(GameManager.getInstance().getBank().getScrapHeap()); if (user != null) { user.removeBonus(name); } @@ -94,12 +93,12 @@ public class BonusToken extends Token implements Closeable, ConfigurableComponen } } - public void setUser(PublicCompanyI user) { + public void setUser(PublicCompany user) { this.user = user; } public boolean isPlaced() { - return (holder instanceof MapHex); + return (getOwner() instanceof MapHex); } public String getId() { diff --git a/rails/game/CashHolder.java b/rails/game/CashHolder.java deleted file mode 100644 index 6da408a..0000000 --- a/rails/game/CashHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/CashHolder.java,v 1.4 2008/06/04 19:00:30 evos Exp $ - */ -package rails.game; - -import rails.game.model.Model; -import rails.game.state.Item; - -public interface CashHolder extends Item { - - /** - * Returns the amount of cash. - * - * @return current amount. - */ - public abstract int getCash(); - - public Model<String> getCashModel(); - - /** - * Add (or subtract) cash. - */ - public abstract void addCash(int amount); - - /** Get the cash owner's name (needed for logging) */ - public abstract String getId(); -} \ No newline at end of file diff --git a/rails/game/Certificate.java b/rails/game/Certificate.java index c802fbe..01c13e7 100644 --- a/rails/game/Certificate.java +++ b/rails/game/Certificate.java @@ -1,13 +1,14 @@ package rails.game; -import rails.game.state.Moveable; +import rails.game.model.Ownable; +import rails.game.model.Portfolio; /** - * The superinterface of PrivateCompanyI and PublicCertificateI, which allows + * The superinterface of PrivateCompany and PublicCertificate, which allows * objects implementating these interfaces to be combined in start packets and * other contexts where their "certificateship" is of interest. */ -public interface Certificate extends Moveable { +public interface Certificate extends Ownable { /** * @return Portfolio diff --git a/rails/game/Company.java b/rails/game/Company.java index 474c717..588c73e 100644 --- a/rails/game/Company.java +++ b/rails/game/Company.java @@ -1,23 +1,33 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/Company.java,v 1.18 2010/05/24 11:20:42 evos Exp $ */ package rails.game; -import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; +import com.google.common.collect.ImmutableList; + import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; +import rails.game.model.DirectOwner; +import rails.game.model.HolderModel; +import rails.game.model.Portfolio; import rails.game.special.SpecialPropertyI; -import rails.game.state.AbstractItem; import rails.game.state.BooleanState; -import rails.game.state.Holder; import rails.util.Util; -public abstract class Company extends AbstractItem implements CompanyI, ConfigurableComponentI, +public abstract class Company extends DirectOwner implements ConfigurableComponentI, Cloneable, Comparable<Company> { + /** The name of the XML tag used to configure a company. */ + public static final String COMPANY_ELEMENT_ID = "Company"; + + /** The name of the XML attribute for the company's name. */ + public static final String COMPANY_NAME_TAG = "name"; + + /** The name of the XML attribute for the company's type. */ + public static final String COMPANY_TYPE_TAG = "type"; + protected String name; protected String longName; protected String alias = null; // To allow reloading files with old names after name changes @@ -48,7 +58,7 @@ Cloneable, Comparable<Company> { protected BooleanState closedObject; // Moved here from PrivayeCOmpany on behalf of 1835 - protected List<SpecialPropertyI> specialProperties = null; + protected HolderModel<SpecialPropertyI> specialProperties = null; protected static Logger log = Logger.getLogger(Company.class.getPackage().getName()); @@ -83,10 +93,11 @@ Cloneable, Comparable<Company> { log.fatal ("Cannot instantiate "+className, e); System.exit(-1); } - sp.setCompany(this); - if (specialProperties == null) specialProperties = new ArrayList<SpecialPropertyI>(2); - specialProperties.add(sp); + if (specialProperties == null) { + specialProperties = HolderModel.create(this, SpecialPropertyI.class); + } sp.configureFromXML(spTag); + sp.moveTo(this); parentInfoText += "<br>" + sp.getInfo(); } } @@ -95,8 +106,8 @@ Cloneable, Comparable<Company> { /** * @return ArrayList of all special properties we have. */ - public List<SpecialPropertyI> getSpecialProperties() { - return specialProperties; + public ImmutableList<SpecialPropertyI> getSpecialProperties() { + return specialProperties.view(); } /** @@ -108,6 +119,10 @@ Cloneable, Comparable<Company> { return specialProperties != null && !specialProperties.isEmpty(); } + public boolean hasPortfolio() { + return true; + } + /** * Get the Portfolio of this company, containing all privates and * certificates owned.. @@ -207,9 +222,11 @@ Cloneable, Comparable<Company> { value = i; } - public Holder getHolder() { + // TODO: Check if this is still required, moved to subclasses +/* public Portfolio getHolder() { return portfolio; } +*/ @Override public Object clone() throws CloneNotSupportedException { @@ -217,12 +234,12 @@ Cloneable, Comparable<Company> { } /** - * Stub method implemented to comply with TokenHolderI interface. Always + * Stub method implemented to comply with HolderModel<Token>I interface. Always * returns false. * * Use addToken(MapHex hex) method instead. */ - public boolean addToken(CompanyI company, int position) { + public boolean addToken(Company company, int position) { return false; } @@ -232,7 +249,7 @@ Cloneable, Comparable<Company> { + " $" + this.getValue(); } - public boolean equals(CompanyI company) { + public boolean equals(Company company) { if (this.companyNumber == company.getCompanyNumber() && this.name.equals(company.getId()) && this.type.equals(company.getType())) return true; @@ -251,10 +268,10 @@ Cloneable, Comparable<Company> { return result; } - public static String joinNamesWithDelimiter (List<CompanyI> companies, String delimiter) { + public static String joinNamesWithDelimiter (List<Company> companies, String delimiter) { StringBuilder b = new StringBuilder(""); if (companies != null) { - for (CompanyI company : companies) { + for (Company company : companies) { if (b.length() > 0) b.append(delimiter); b.append(company.getId()); } diff --git a/rails/game/CompanyI.java b/rails/game/CompanyI.java deleted file mode 100644 index 0e3eb6e..0000000 --- a/rails/game/CompanyI.java +++ /dev/null @@ -1,115 +0,0 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/CompanyI.java,v 1.8 2010/02/28 21:38:05 evos Exp $ */ -package rails.game; - -import java.util.List; - -import rails.common.parser.ConfigurableComponentI; -import rails.game.special.SpecialPropertyI; -import rails.game.state.Item; -import rails.game.state.Holder; - -/** - * To be implemented by any Company object. - */ -public interface CompanyI extends Item, ConfigurableComponentI, Holder { - - /** The name of the XML tag used to configure a company. */ - public static final String COMPANY_ELEMENT_ID = "Company"; - - /** The name of the XML attribute for the company's name. */ - public static final String COMPANY_NAME_TAG = "name"; - - /** The name of the XML attribute for the company's type. */ - public static final String COMPANY_TYPE_TAG = "type"; - - void init(String name, CompanyTypeI type); - - /** - * @return ArrayList of all special properties we have. - */ - public List<SpecialPropertyI> getSpecialProperties(); - - /** - * Do we have any special properties? - * - * @return Boolean - */ - public boolean hasSpecialProperties(); - - /** - * Get the Portfolio of this company, containing all privates and - * certificates owned.. - * - * @return The Portfolio of this company. - */ - public Portfolio getPortfolio(); - - /** - * Returns the name of the Company - * - * @return the name of the Company - */ - public String getId(); - - public String getLongName(); - - public String getInfoText(); - - public String getAlias(); - - /** - * Returns the CompanyType of the Company - * - * @return the type of the Company - */ - CompanyTypeI getType(); - - /** - * Returns the type name of the Company - * - * @return type name - */ - public String getTypeName(); - - /** - * @return Company Value - */ - int getValue(); - - /** - * @param Company Value - */ - void setValue(int i); - - /** - * @return Company number - */ - int getCompanyNumber(); - - /** - * @return true if Company is closed. - */ - boolean isClosed(); - - /** - * Set company to closed - */ - void setClosed(); - - /** - * @return - */ - public int getCertLimitCount(); - - /** - * @param i - */ - public void setCertLimitCount(int i); - - public abstract Object clone() throws CloneNotSupportedException; - - // Overriding some standard methods with something more useful. - public String toString(); - - public boolean equals(CompanyI company); -} diff --git a/rails/game/CompanyManager.java b/rails/game/CompanyManager.java index 002d54f..455f565 100644 --- a/rails/game/CompanyManager.java +++ b/rails/game/CompanyManager.java @@ -1 +1 @@ -/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/CompanyManager.java,v 1.24 2010/04/15 19:49:50 evos Exp $ */ package rails.game; import java.util.*; import org.apache.log4j.Logger; import rails.common.LocalText; import rails.common.parser.ConfigurableComponentI; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; public class CompanyManager implements CompanyManagerI, ConfigurableComponentI { /** A List with all private companies */ private List<PrivateCompanyI> lPrivateCompanies = new ArrayList<PrivateCompanyI>(); /** A List with all public companies */ private List<PublicCompanyI> lPublicCompanies = new ArrayList<PublicCompanyI>(); /** A map with all private companies by name */ private Map<String, PrivateCompanyI> mPrivateCompanies = new HashMap<String, PrivateCompanyI>(); /** A map with all public (i.e. non-private) companies by name */ private Map<String, PublicCompanyI> mPublicCompanies = new HashMap<String, PublicCompanyI>(); /** A map of all type names to maps of companies of that type by name */ // TODO Redundant, current usage can be replaced. private Map<String, Map<String, CompanyI>> mCompaniesByTypeAndName = new HashMap<String, Map<String, CompanyI>>(); /** A list of all company types */ private List<CompanyTypeI> lCompanyTypes = new ArrayList<CompanyTypeI>(); /** A list of all start packets (usually one) */ private List<StartPacket> startPackets = new ArrayList<StartPacket>(); /** A map of all start packets, keyed by name. Default name is "Initial" */ private Map<String, StartPacket> startPacketMap = new HashMap<String, StartPacket>(); /** A map to enable translating aliases to names */ protected Map<String, String> aliases = null; private int numberOfPublicCompanies = 0; protected static Logger log = Logger.getLogger(CompanyManager.class.getPackage().getName()); protected GameMan |