From: Stefan F. <ste...@us...> - 2012-06-13 17:52:44
|
src/rails/algorithms/RevenueBonusTemplate.java | 4 src/rails/algorithms/RevenueManager.java | 12 src/rails/common/parser/ComponentManager.java | 16 src/rails/common/parser/ConfigurableComponent.java | 37 src/rails/common/parser/ConfigurableComponentI.java | 37 src/rails/common/parser/GameFileParser.java | 8 src/rails/game/AbstractRound.java | 545 ----------- src/rails/game/Bank.java | 6 src/rails/game/BonusToken.java | 4 src/rails/game/Company.java | 4 src/rails/game/CompanyManager.java | 14 src/rails/game/CompanyManagerI.java | 70 - src/rails/game/CompanyType.java | 2 src/rails/game/EndOfGameRound.java | 2 src/rails/game/Game.java | 2 src/rails/game/GameManager.java | 10 src/rails/game/MapHex.java | 4 src/rails/game/MapManager.java | 4 src/rails/game/OperatingRound.java | 2 src/rails/game/Phase.java | 4 src/rails/game/PhaseManager.java | 4 src/rails/game/PlayerManager.java | 4 src/rails/game/PrivateCompany.java | 2 src/rails/game/Round.java | 543 ++++++++++ src/rails/game/StartItem.java | 4 src/rails/game/StartRound.java | 2 src/rails/game/StockMarket.java | 6 src/rails/game/StockRound.java | 2 src/rails/game/SwitchableUIRound.java | 2 src/rails/game/TileManager.java | 4 src/rails/game/TrainManager.java | 6 src/rails/game/TrainType.java | 2 src/rails/game/action/BuyCertificate.java | 2 src/rails/game/action/BuyTrain.java | 4 src/rails/game/action/MergeCompanies.java | 2 src/rails/game/action/PossibleAction.java | 2 src/rails/game/action/ReachDestinations.java | 4 src/rails/game/action/SellShares.java | 2 src/rails/game/specific/_1835/FoldIntoPrussian.java | 2 src/rails/game/specific/_18AL/NamedTrainRevenueModifier.java | 4 src/rails/game/specific/_18AL/NamedTrainToken.java | 4 src/rails/game/specific/_18EU/StartCompany_18EU.java | 2 src/rails/game/specific/_18Kaas/RuhrRevenueModifier.java | 4 src/rails/ui/swing/ORPanel.java | 6 src/test/GameTestServlet.java | 4 src/test/StockMarketTestServlet.java | 4 src/test/StockTest.java | 4 47 files changed, 660 insertions(+), 758 deletions(-) New commits: commit 7286b3efe40f2c6303b72c84a0740c12d6b57d6f Author: Stefan Frey <ste...@we...> Date: Wed Jun 13 19:51:16 2012 +0200 renamed ConfigurableCompenentI to ConfigurableComponent diff --git a/src/rails/algorithms/RevenueBonusTemplate.java b/src/rails/algorithms/RevenueBonusTemplate.java index c4ce053..69b535f 100644 --- a/src/rails/algorithms/RevenueBonusTemplate.java +++ b/src/rails/algorithms/RevenueBonusTemplate.java @@ -6,7 +6,7 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.GameManager; @@ -21,7 +21,7 @@ import rails.game.TrainType; * will be converted to a true RevenueBonus object during each revenue calculation * @author freystef */ -public final class RevenueBonusTemplate implements ConfigurableComponentI { +public final class RevenueBonusTemplate implements ConfigurableComponent { protected static Logger log = LoggerFactory.getLogger(RevenueBonusTemplate.class.getPackage().getName()); diff --git a/src/rails/algorithms/RevenueManager.java b/src/rails/algorithms/RevenueManager.java index c367678..0c14e5d 100644 --- a/src/rails/algorithms/RevenueManager.java +++ b/src/rails/algorithms/RevenueManager.java @@ -9,7 +9,7 @@ import org.slf4j.LoggerFactory; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.GameManager; @@ -27,12 +27,12 @@ import rails.game.state.Item; * */ -public final class RevenueManager extends AbstractItem implements ConfigurableComponentI { +public final class RevenueManager extends AbstractItem implements ConfigurableComponent { protected static Logger log = LoggerFactory.getLogger(RevenueManager.class.getPackage().getName()); - private final HashSet<ConfigurableComponentI> configurableModifiers = new HashSet<ConfigurableComponentI>(); + private final HashSet<ConfigurableComponent> configurableModifiers = new HashSet<ConfigurableComponent>(); private final ArrayListState<NetworkGraphModifier> graphModifiers = ArrayListState.create(); private final ArrayListState<RevenueStaticModifier> staticModifiers = ArrayListState.create(); @@ -86,8 +86,8 @@ public final class RevenueManager extends AbstractItem implements ConfigurableCo throw new ConfigurationException(LocalText.getText( "ClassIsNotAModifier", className)); } - if (isModifier && modifier instanceof ConfigurableComponentI) { - configurableModifiers.add((ConfigurableComponentI)modifier); + if (isModifier && modifier instanceof ConfigurableComponent) { + configurableModifiers.add((ConfigurableComponent)modifier); } } } @@ -104,7 +104,7 @@ public final class RevenueManager extends AbstractItem implements ConfigurableCo public void finishConfiguration(GameManager parent) throws ConfigurationException { - for (ConfigurableComponentI modifier:configurableModifiers) { + for (ConfigurableComponent modifier:configurableModifiers) { modifier.finishConfiguration(parent); } } diff --git a/src/rails/common/parser/ComponentManager.java b/src/rails/common/parser/ComponentManager.java index ffb19ff..daa7f30 100644 --- a/src/rails/common/parser/ComponentManager.java +++ b/src/rails/common/parser/ComponentManager.java @@ -25,8 +25,8 @@ public class ComponentManager { protected Logger log = LoggerFactory.getLogger(ComponentManager.class.getPackage().getName()); protected List<String> directories = new ArrayList<String>(); - private Map<String, ConfigurableComponentI> mComponentMap = - new HashMap<String, ConfigurableComponentI>(); + private Map<String, ConfigurableComponent> mComponentMap = + new HashMap<String, ConfigurableComponent>(); public ComponentManager(Context context, String gameName, Tag tag, Map<String, String> gameOptions) throws ConfigurationException { @@ -64,13 +64,13 @@ public class ComponentManager { } // Now construct the component - ConfigurableComponentI component; + ConfigurableComponent component; try { - Class<? extends ConfigurableComponentI> compClass; + Class<? extends ConfigurableComponent> compClass; compClass = Class.forName(clazz).asSubclass( - ConfigurableComponentI.class); - Constructor<? extends ConfigurableComponentI> compCons = + ConfigurableComponent.class); + Constructor<? extends ConfigurableComponent> compCons = compClass.getConstructor(new Class[0]); component = compCons.newInstance(new Object[0]); } catch (Exception ex) { @@ -110,8 +110,8 @@ public class ComponentManager { * @param componentName the of the component sought. * @return the component sought, or null if it has not been configured. */ - public ConfigurableComponentI findComponent(String componentName) throws ConfigurationException { - ConfigurableComponentI comp = mComponentMap.get(componentName); + public ConfigurableComponent findComponent(String componentName) throws ConfigurationException { + ConfigurableComponent comp = mComponentMap.get(componentName); //FIXME: Revenue Manager is currently optional. if (comp == null && componentName != "RevenueManager") { diff --git a/src/rails/common/parser/ConfigurableComponent.java b/src/rails/common/parser/ConfigurableComponent.java new file mode 100644 index 0000000..02e67f1 --- /dev/null +++ b/src/rails/common/parser/ConfigurableComponent.java @@ -0,0 +1,37 @@ +/* $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.GameManager; + +/** + * Interface for rails.game components which can be configured from an XML + * element. + */ +public interface ConfigurableComponent { + + /** + * Instructs the component to configure itself from the provided XML + * element. + * + * @param element the XML element containing the configuration + * @throws ConfigurationException + */ + void configureFromXML(Tag tag) throws ConfigurationException; + + /** + * This method is intended to be called for each configurable + * component, to perforn any initialisation activities that + * require any other components to be initialised first. + * This includes creating any required relationships to other + * configured components and objects. + * <p>This method should be called where necessary after all + * XML file parsing has completed, so that all objects that + * need to be related to do exist. + * @param parent The 'parent' configurable component is passed to allow + * the 'child' to access any other object without the need to resort to + * static calls where possible. + */ + void finishConfiguration (GameManager parent) + throws ConfigurationException; + +} diff --git a/src/rails/common/parser/ConfigurableComponentI.java b/src/rails/common/parser/ConfigurableComponentI.java deleted file mode 100644 index c0741f2..0000000 --- a/src/rails/common/parser/ConfigurableComponentI.java +++ /dev/null @@ -1,37 +0,0 @@ -/* $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.GameManager; - -/** - * Interface for rails.game components which can be configured from an XML - * element. - */ -public interface ConfigurableComponentI { - - /** - * Instructs the component to configure itself from the provided XML - * element. - * - * @param element the XML element containing the configuration - * @throws ConfigurationException - */ - void configureFromXML(Tag tag) throws ConfigurationException; - - /** - * This method is intended to be called for each configurable - * component, to perforn any initialisation activities that - * require any other components to be initialised first. - * This includes creating any required relationships to other - * configured components and objects. - * <p>This method should be called where necessary after all - * XML file parsing has completed, so that all objects that - * need to be related to do exist. - * @param parent The 'parent' configurable component is passed to allow - * the 'child' to access any other object without the need to resort to - * static calls where possible. - */ - void finishConfiguration (GameManager parent) - throws ConfigurationException; - -} diff --git a/src/rails/game/Bank.java b/src/rails/game/Bank.java index fac4fe1..392c62c 100644 --- a/src/rails/game/Bank.java +++ b/src/rails/game/Bank.java @@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory; import rails.common.LocalText; import rails.common.parser.Config; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.model.CashMoneyModel; @@ -18,7 +18,7 @@ import rails.game.state.BooleanState; import rails.game.state.Item; import rails.util.*; -public class Bank extends AbstractItem implements CashOwner, ConfigurableComponentI { +public class Bank extends AbstractItem implements CashOwner, ConfigurableComponent { private static Bank instance = null; @@ -81,7 +81,7 @@ public class Bank extends AbstractItem implements CashOwner, ConfigurableCompone } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/BonusToken.java b/src/rails/game/BonusToken.java index 9c8f871..acfcfe7 100644 --- a/src/rails/game/BonusToken.java +++ b/src/rails/game/BonusToken.java @@ -1,6 +1,6 @@ package rails.game; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.Item; @@ -15,7 +15,7 @@ import rails.util.Util; * @author Erik Vos */ -public final class BonusToken extends Token implements Closeable, ConfigurableComponentI { +public final class BonusToken extends Token implements Closeable, ConfigurableComponent { private int value; private String name; diff --git a/src/rails/game/Company.java b/src/rails/game/Company.java index 58bc80f..04f9658 100644 --- a/src/rails/game/Company.java +++ b/src/rails/game/Company.java @@ -7,7 +7,7 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableList; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.special.SpecialProperty; @@ -17,7 +17,7 @@ import rails.game.state.Item; import rails.game.state.PortfolioList; import rails.util.Util; -public abstract class Company extends AbstractItem implements ConfigurableComponentI, +public abstract class Company extends AbstractItem implements ConfigurableComponent, Cloneable, Comparable<Company> { /** The name of the XML tag used to configure a company. */ diff --git a/src/rails/game/CompanyManager.java b/src/rails/game/CompanyManager.java index 0adc9f1..399e514 100644 --- a/src/rails/game/CompanyManager.java +++ b/src/rails/game/CompanyManager.java @@ -9,12 +9,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.AbstractItem; -public class CompanyManager extends AbstractItem implements ConfigurableComponentI { +public class CompanyManager extends AbstractItem implements ConfigurableComponent { /** * This is the name by which the CompanyManager should be registered with @@ -71,7 +71,7 @@ public class CompanyManager extends AbstractItem implements ConfigurableComponen public CompanyManager() { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/CompanyType.java b/src/rails/game/CompanyType.java index dad9339..cae1e49 100644 --- a/src/rails/game/CompanyType.java +++ b/src/rails/game/CompanyType.java @@ -63,7 +63,7 @@ public class CompanyType extends AbstractItem { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { //No longer needed. diff --git a/src/rails/game/GameManager.java b/src/rails/game/GameManager.java index 1b9bf81..2ba7b72 100644 --- a/src/rails/game/GameManager.java +++ b/src/rails/game/GameManager.java @@ -27,7 +27,7 @@ import rails.util.Util; * This class manages the playing rounds by supervising all implementations of * Round. Currently everything is hardcoded à la 1830. */ -public class GameManager extends AbstractItem implements ConfigurableComponentI { +public class GameManager extends AbstractItem implements ConfigurableComponent { /** Version ID of the Save file header, as written in save() */ private static final long saveFileHeaderVersionID = 3L; /** diff --git a/src/rails/game/MapHex.java b/src/rails/game/MapHex.java index 71f758e..e338c10 100644 --- a/src/rails/game/MapHex.java +++ b/src/rails/game/MapHex.java @@ -59,7 +59,7 @@ import rails.util.*; */ // FIXME: MapHex was previous a model -public class MapHex extends AbstractItem implements PortfolioHolder, ConfigurableComponentI, +public class MapHex extends AbstractItem implements PortfolioHolder, ConfigurableComponent, StationHolder { private static final String[] ewOrNames = @@ -193,7 +193,7 @@ StationHolder { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { Pattern namePattern = Pattern.compile("(\\D+?)(-?\\d+)"); diff --git a/src/rails/game/MapManager.java b/src/rails/game/MapManager.java index f8f6d19..de07282 100644 --- a/src/rails/game/MapManager.java +++ b/src/rails/game/MapManager.java @@ -17,7 +17,7 @@ import rails.util.Util; /** * MapManager configures the map layout from XML */ -public class MapManager extends AbstractItem implements ConfigurableComponentI { +public class MapManager extends AbstractItem implements ConfigurableComponent { private String mapUIClassName = null; @@ -68,7 +68,7 @@ public class MapManager extends AbstractItem implements ConfigurableComponentI { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { String attr = tag.getAttributeAsString("tileOrientation"); diff --git a/src/rails/game/Phase.java b/src/rails/game/Phase.java index 1b20e8d..7857bf7 100644 --- a/src/rails/game/Phase.java +++ b/src/rails/game/Phase.java @@ -10,13 +10,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.Owner; import rails.util.Util; -public class Phase implements ConfigurableComponentI { +public class Phase implements ConfigurableComponent { protected int index; diff --git a/src/rails/game/PhaseManager.java b/src/rails/game/PhaseManager.java index 2b80119..0b2c1a0 100644 --- a/src/rails/game/PhaseManager.java +++ b/src/rails/game/PhaseManager.java @@ -5,7 +5,7 @@ import java.util.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.AbstractItem; @@ -14,7 +14,7 @@ import rails.game.state.Item; import rails.game.state.Owner; import rails.game.state.State; -public class PhaseManager extends AbstractItem implements ConfigurableComponentI { +public class PhaseManager extends AbstractItem implements ConfigurableComponent { protected ArrayList<Phase> phaseList; protected HashMap<String, Phase> phaseMap; diff --git a/src/rails/game/PlayerManager.java b/src/rails/game/PlayerManager.java index ce1e653..a7329a2 100644 --- a/src/rails/game/PlayerManager.java +++ b/src/rails/game/PlayerManager.java @@ -3,13 +3,13 @@ package rails.game; import java.util.*; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.model.MoneyModel; import rails.game.state.AbstractItem; -public class PlayerManager extends AbstractItem implements ConfigurableComponentI { +public class PlayerManager extends AbstractItem implements ConfigurableComponent { private int numberOfPlayers; private List<Player> players; diff --git a/src/rails/game/PrivateCompany.java b/src/rails/game/PrivateCompany.java index 0d7aebe..87b47d6 100644 --- a/src/rails/game/PrivateCompany.java +++ b/src/rails/game/PrivateCompany.java @@ -93,7 +93,7 @@ public class PrivateCompany extends Company implements Ownable<PrivateCompany>, } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ @Override public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/StockMarket.java b/src/rails/game/StockMarket.java index 72f09b3..d8a4c08 100644 --- a/src/rails/game/StockMarket.java +++ b/src/rails/game/StockMarket.java @@ -5,14 +5,14 @@ import java.util.HashMap; import java.util.List; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.AbstractItem; import rails.game.state.BooleanState; import rails.game.state.Item; -public class StockMarket extends AbstractItem implements ConfigurableComponentI { +public class StockMarket extends AbstractItem implements ConfigurableComponent { /** * This is the name by which the CompanyManager should be registered with @@ -62,7 +62,7 @@ public class StockMarket extends AbstractItem implements ConfigurableComponentI /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/TileManager.java b/src/rails/game/TileManager.java index 6c68fab..c8e9465 100644 --- a/src/rails/game/TileManager.java +++ b/src/rails/game/TileManager.java @@ -16,7 +16,7 @@ import rails.game.Stop.Type; import rails.game.state.AbstractItem; import rails.util.Util; -public class TileManager extends AbstractItem implements ConfigurableComponentI { +public class TileManager extends AbstractItem implements ConfigurableComponent { protected Map<Integer, Tile> tileMap = new HashMap<Integer, Tile>(); protected List<Integer> tileIds = new ArrayList<Integer>(); @@ -40,7 +40,7 @@ public class TileManager extends AbstractItem implements ConfigurableComponentI } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tileSetTop) throws ConfigurationException { /* diff --git a/src/rails/game/TrainManager.java b/src/rails/game/TrainManager.java index 3b5bfc2..3138b08 100644 --- a/src/rails/game/TrainManager.java +++ b/src/rails/game/TrainManager.java @@ -11,7 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rails.common.LocalText; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.model.PortfolioModel; @@ -21,7 +21,7 @@ import rails.game.state.IntegerState; import rails.game.state.Item; import rails.game.state.Owner; -public class TrainManager extends AbstractItem implements ConfigurableComponentI { +public class TrainManager extends AbstractItem implements ConfigurableComponent { // Static attributes protected final List<TrainType> lTrainTypes = new ArrayList<TrainType>(); @@ -83,7 +83,7 @@ public class TrainManager extends AbstractItem implements ConfigurableComponentI public TrainManager() { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/TrainType.java b/src/rails/game/TrainType.java index a9932cc..eb4be47 100644 --- a/src/rails/game/TrainType.java +++ b/src/rails/game/TrainType.java @@ -54,7 +54,7 @@ public class TrainType implements Cloneable { } /** - * @see rails.common.parser.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element) + * @see rails.common.parser.ConfigurableComponent#configureFromXML(org.w3c.dom.Element) */ public void configureFromXML(Tag tag) throws ConfigurationException { diff --git a/src/rails/game/specific/_18AL/NamedTrainRevenueModifier.java b/src/rails/game/specific/_18AL/NamedTrainRevenueModifier.java index 9471a5e..6f6bd83 100644 --- a/src/rails/game/specific/_18AL/NamedTrainRevenueModifier.java +++ b/src/rails/game/specific/_18AL/NamedTrainRevenueModifier.java @@ -10,14 +10,14 @@ import rails.algorithms.RevenueBonus; import rails.algorithms.RevenueDynamicModifier; import rails.algorithms.RevenueStaticModifier; import rails.algorithms.RevenueTrainRun; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.GameManager; import rails.game.MapHex; import rails.game.Train; -public class NamedTrainRevenueModifier implements RevenueStaticModifier, RevenueDynamicModifier, ConfigurableComponentI { +public class NamedTrainRevenueModifier implements RevenueStaticModifier, RevenueDynamicModifier, ConfigurableComponent { private boolean dynamic; private List<RevenueBonus> bonuses; diff --git a/src/rails/game/specific/_18AL/NamedTrainToken.java b/src/rails/game/specific/_18AL/NamedTrainToken.java index f91f343..84c8720 100644 --- a/src/rails/game/specific/_18AL/NamedTrainToken.java +++ b/src/rails/game/specific/_18AL/NamedTrainToken.java @@ -10,14 +10,14 @@ import org.slf4j.LoggerFactory; //import rails.algorithms.RevenueBonus; //import rails.algorithms.RevenueManager; //import rails.algorithms.RevenueStaticModifier; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.*; import rails.game.state.Item; import rails.util.Util; -public class NamedTrainToken extends Token implements ConfigurableComponentI /*, RevenueStaticModifier */ { +public class NamedTrainToken extends Token implements ConfigurableComponent /*, RevenueStaticModifier */ { protected static Logger log = LoggerFactory.getLogger(NamedTrainToken.class.getPackage().getName()); diff --git a/src/rails/game/specific/_18Kaas/RuhrRevenueModifier.java b/src/rails/game/specific/_18Kaas/RuhrRevenueModifier.java index 4258d37..e75463c 100644 --- a/src/rails/game/specific/_18Kaas/RuhrRevenueModifier.java +++ b/src/rails/game/specific/_18Kaas/RuhrRevenueModifier.java @@ -10,12 +10,12 @@ import rails.algorithms.NetworkVertex; import rails.algorithms.RevenueAdapter; import rails.algorithms.RevenueBonus; import rails.algorithms.RevenueStaticModifier; -import rails.common.parser.ConfigurableComponentI; +import rails.common.parser.ConfigurableComponent; import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.GameManager; -public class RuhrRevenueModifier implements RevenueStaticModifier, ConfigurableComponentI { +public class RuhrRevenueModifier implements RevenueStaticModifier, ConfigurableComponent { protected static Logger log = LoggerFactory.getLogger(RuhrRevenueModifier.class.getPackage().getName()); commit 5856b28b19d275b4255d1c090abfbcabeedd04d6 Author: Stefan Frey <ste...@we...> Date: Wed Jun 13 19:49:39 2012 +0200 removed CompanyManagerI interface diff --git a/src/rails/common/parser/GameFileParser.java b/src/rails/common/parser/GameFileParser.java index 0462a7a..528892e 100644 --- a/src/rails/common/parser/GameFileParser.java +++ b/src/rails/common/parser/GameFileParser.java @@ -7,7 +7,7 @@ import rails.common.DisplayBuffer; import rails.common.LocalText; import rails.common.parser.ComponentManager; import rails.game.Bank; -import rails.game.CompanyManagerI; +import rails.game.CompanyManager; import rails.game.GameManager; import rails.game.MapManager; import rails.game.PhaseManager; @@ -24,7 +24,7 @@ public class GameFileParser extends XMLParser { private ComponentManager componentManager; private GameManager gameManager; - private CompanyManagerI companyManager; + private CompanyManager companyManager; private PlayerManager playerManager; private PhaseManager phaseManager; private TrainManager trainManager; @@ -47,7 +47,7 @@ public class GameFileParser extends XMLParser { playerManager = (PlayerManager) componentManager.findComponent("PlayerManager"); bank = (Bank) componentManager.findComponent("Bank"); - companyManager = (CompanyManagerI) componentManager.findComponent(CompanyManagerI.COMPONENT_NAME); + companyManager = (CompanyManager) componentManager.findComponent(CompanyManager.COMPONENT_NAME); stockMarket = (StockMarket) componentManager.findComponent(StockMarket.COMPONENT_NAME); gameManager = (GameManager) componentManager.findComponent("GameManager"); phaseManager = (PhaseManager) componentManager.findComponent("PhaseManager"); @@ -82,7 +82,7 @@ public class GameFileParser extends XMLParser { /** * @return the companyManager */ - public CompanyManagerI getCompanyManager() { + public CompanyManager getCompanyManager() { return companyManager; } diff --git a/src/rails/game/CompanyManager.java b/src/rails/game/CompanyManager.java index f581c81..0adc9f1 100644 --- a/src/rails/game/CompanyManager.java +++ b/src/rails/game/CompanyManager.java @@ -14,7 +14,13 @@ import rails.common.parser.ConfigurationException; import rails.common.parser.Tag; import rails.game.state.AbstractItem; -public class CompanyManager extends AbstractItem implements CompanyManagerI, ConfigurableComponentI { +public class CompanyManager extends AbstractItem implements ConfigurableComponentI { + + /** + * This is the name by which the CompanyManager should be registered with + * the ComponentManager. + */ + public static final String COMPONENT_NAME = "CompanyManager"; /** A List with all private companies */ private List<PrivateCompany> lPrivateCompanies = @@ -223,7 +229,7 @@ public class CompanyManager extends AbstractItem implements CompanyManagerI, Con } } /** - * @see rails.game.CompanyManagerI#getCompany(java.lang.String) + * @see rails.game.CompanyManager#getCompany(java.lang.String) * */ public PrivateCompany getPrivateCompany(String name) { diff --git a/src/rails/game/CompanyManagerI.java b/src/rails/game/CompanyManagerI.java deleted file mode 100644 index e3c927b..0000000 --- a/src/rails/game/CompanyManagerI.java +++ /dev/null @@ -1,70 +0,0 @@ -package rails.game; - -import java.util.List; - -import rails.common.parser.ConfigurableComponentI; - -/** - * Interface for CompanyManager objects. A company manager is a factory which - * vends Company objects. - */ -public interface CompanyManagerI extends ConfigurableComponentI { - - /** - * This is the name by which the CompanyManager should be registered with - * the ComponentManager. - */ - static final String COMPONENT_NAME = "CompanyManager"; - - /** - * Returns the Private Company identified by the supplied name. - * - * @param name the name of the company sought - * @return the Private Company with the supplied name - */ - PrivateCompany getPrivateCompany(String name); - - /** - * Returns the Public Company identified by the supplied name. - * - * @param name the name of the company sought - * @return the Public Company with the supplied name - */ - PublicCompany getPublicCompany(String name); - - /** - * Gives a list of all the registered Private Companies. - * - * @return a list of all the registered Private Companies - */ - List<PrivateCompany> getAllPrivateCompanies(); - - /** - * Gives a list of all the registered Private Companies. - * - * @return a list of all the registered Private Companies - */ - List<PublicCompany> getAllPublicCompanies(); - - /** - * Find a company by type and name - * - * @param type The name of the CompanyType - * @param name The name of the Company - * @return The company object, or null if not found. - */ - public Company getCompany(String type, String name); - - public String checkAlias (String alias); - public String checkAliasInCertId (String certId); - - public List<CompanyType> getCompanyTypes(); - - public void closeAllPrivates(); - - public List<PrivateCompany> getPrivatesOwnedByPlayers(); - - public StartPacket getStartPacket (int index); - public StartPacket getStartPacket (String name); - -} diff --git a/src/rails/game/Game.java b/src/rails/game/Game.java index c04e148..961c7b2 100644 --- a/src/rails/game/Game.java +++ b/src/rails/game/Game.java @@ -19,7 +19,7 @@ public class Game { /** The component Manager */ protected GameManager gameManager; - protected CompanyManagerI companyManager; + protected CompanyManager companyManager; protected PlayerManager playerManager; protected PhaseManager phaseManager; protected TrainManager trainManager; diff --git a/src/rails/game/GameManager.java b/src/rails/game/GameManager.java index 8a4fec5..1b9bf81 100644 --- a/src/rails/game/GameManager.java +++ b/src/rails/game/GameManager.java @@ -51,7 +51,7 @@ public class GameManager extends AbstractItem implements ConfigurableComponentI protected String orWindowClassName = GuiDef.getDefaultClassName(GuiDef.ClassName.OR_WINDOW); protected PlayerManager playerManager; - protected CompanyManagerI companyManager; + protected CompanyManager companyManager; protected PhaseManager phaseManager; protected TrainManager trainManager; protected StockMarket stockMarket; @@ -531,11 +531,11 @@ public class GameManager extends AbstractItem implements ConfigurableComponentI } /* (non-Javadoc) - * @see rails.game.GameManager#startGame(rails.game.PlayerManager, rails.game.CompanyManagerI, rails.game.PhaseManager) + * @see rails.game.GameManager#startGame(rails.game.PlayerManager, rails.game.CompanyManager, rails.game.PhaseManager) */ public void init(String gameName, PlayerManager playerManager, - CompanyManagerI companyManager, + CompanyManager companyManager, PhaseManager phaseManager, TrainManager trainManager, StockMarket stockMarket, @@ -637,7 +637,7 @@ public class GameManager extends AbstractItem implements ConfigurableComponentI /* (non-Javadoc) * @see rails.game.GameManager#getCompanyManager() */ - public CompanyManagerI getCompanyManager() { + public CompanyManager getCompanyManager() { return companyManager; } diff --git a/src/rails/game/Round.java b/src/rails/game/Round.java index a6378ea..61cb531 100644 --- a/src/rails/game/Round.java +++ b/src/rails/game/Round.java @@ -33,7 +33,7 @@ public abstract class Round extends AbstractItem { LoggerFactory.getLogger(Round.class.getPackage().getName()); protected GameManager gameManager = null; - protected CompanyManagerI companyManager = null; + protected CompanyManager companyManager = null; protected PlayerManager playerManager = null; protected Bank bank = null; protected PortfolioModel ipo = null; diff --git a/src/rails/game/StartItem.java b/src/rails/game/StartItem.java index ed9a83d..65987cd 100644 --- a/src/rails/game/StartItem.java +++ b/src/rails/game/StartItem.java @@ -71,7 +71,7 @@ public class StartItem extends AbstractItem { // Static properties //protected static Portfolio ipo; //protected static Portfolio unavailable; - //protected static CompanyManagerI compMgr; + //protected static CompanyManager compMgr; //protected static int nextIndex = 0; protected static Map<String, StartItem> startItemMap; @@ -161,7 +161,7 @@ public class StartItem extends AbstractItem { PortfolioModel ipo = gameManager.getBank().getIpo(); PortfolioModel unavailable = gameManager.getBank().getUnavailable(); - CompanyManagerI compMgr = gameManager.getCompanyManager(); + CompanyManager compMgr = gameManager.getCompanyManager(); Company company = compMgr.getCompany(type, name); if (company instanceof PrivateCompany) { diff --git a/src/rails/game/action/BuyCertificate.java b/src/rails/game/action/BuyCertificate.java index a906b62..6ddd43d 100644 --- a/src/rails/game/action/BuyCertificate.java +++ b/src/rails/game/action/BuyCertificate.java @@ -149,7 +149,7 @@ public class BuyCertificate extends PossibleAction { GameManager gameManager = GameManager.getInstance(); /* Check for aliases (old company names) */ - CompanyManagerI companyManager = gameManager.getCompanyManager(); + CompanyManager companyManager = gameManager.getCompanyManager(); companyName = companyManager.checkAlias (companyName); if (certUniqueId != null) { diff --git a/src/rails/game/action/BuyTrain.java b/src/rails/game/action/BuyTrain.java index 905e375..f41090b 100644 --- a/src/rails/game/action/BuyTrain.java +++ b/src/rails/game/action/BuyTrain.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.List; import rails.game.Bank; -import rails.game.CompanyManagerI; +import rails.game.CompanyManager; import rails.game.GameManager; import rails.game.Train; import rails.game.TrainManager; @@ -302,7 +302,7 @@ public class BuyTrain extends PossibleORAction { GameManager gameManager = GameManager.getInstance(); TrainManager trainManager = gameManager.getTrainManager(); - CompanyManagerI companyManager = gameManager.getCompanyManager(); + CompanyManager companyManager = gameManager.getCompanyManager(); fromName = companyManager.checkAlias (fromName); diff --git a/src/rails/game/action/MergeCompanies.java b/src/rails/game/action/MergeCompanies.java index e4600e3..fd30b6a 100644 --- a/src/rails/game/action/MergeCompanies.java +++ b/src/rails/game/action/MergeCompanies.java @@ -141,7 +141,7 @@ public class MergeCompanies extends PossibleAction { selectedTargetCompanyName = (String) fields.get("selectedTargetCompanyName", selectedTargetCompanyName); replaceToken = fields.get("replaceToken", replaceToken); - CompanyManagerI cmgr = getCompanyManager(); + CompanyManager cmgr = getCompanyManager(); mergingCompany = cmgr.getPublicCompany(mergingCompanyName); diff --git a/src/rails/game/action/PossibleAction.java b/src/rails/game/action/PossibleAction.java index 4673537..a1c0211 100644 --- a/src/rails/game/action/PossibleAction.java +++ b/src/rails/game/action/PossibleAction.java @@ -106,7 +106,7 @@ public abstract class PossibleAction implements Serializable { return GameManager.getInstance(); } - protected CompanyManagerI getCompanyManager () { + protected CompanyManager getCompanyManager () { return getGameManager().getCompanyManager(); } diff --git a/src/rails/game/action/ReachDestinations.java b/src/rails/game/action/ReachDestinations.java index 8f3c405..be45f55 100644 --- a/src/rails/game/action/ReachDestinations.java +++ b/src/rails/game/action/ReachDestinations.java @@ -5,7 +5,7 @@ import java.io.ObjectInputStream; import java.util.ArrayList; import java.util.List; -import rails.game.CompanyManagerI; +import rails.game.CompanyManager; import rails.game.PublicCompany; import rails.util.Util; @@ -91,7 +91,7 @@ public class ReachDestinations extends PossibleORAction { in.defaultReadObject(); - CompanyManagerI cmgr = getCompanyManager(); + CompanyManager cmgr = getCompanyManager(); possibleCompanies = new ArrayList<PublicCompany>(); if (Util.hasValue(possibleCompanyNames)) { diff --git a/src/rails/game/action/SellShares.java b/src/rails/game/action/SellShares.java index 3ee4222..ceb8588 100644 --- a/src/rails/game/action/SellShares.java +++ b/src/rails/game/action/SellShares.java @@ -124,7 +124,7 @@ public class SellShares extends PossibleAction { in.defaultReadObject(); - CompanyManagerI companyManager = getCompanyManager(); + CompanyManager companyManager = getCompanyManager(); if (Util.hasValue(companyName)) companyName = companyManager.checkAlias(companyName); company = companyManager.getPublicCompany(companyName); diff --git a/src/rails/game/specific/_1835/FoldIntoPrussian.java b/src/rails/game/specific/_1835/FoldIntoPrussian.java index cf85408..6695678 100644 --- a/src/rails/game/specific/_1835/FoldIntoPrussian.java +++ b/src/rails/game/specific/_1835/FoldIntoPrussian.java @@ -91,7 +91,7 @@ public class FoldIntoPrussian extends PossibleAction { in.defaultReadObject(); - CompanyManagerI cmgr = getCompanyManager(); + CompanyManager cmgr = getCompanyManager(); if (foldableCompanyNames != null) { foldableCompanies = new ArrayList<Company>(); for (String name : foldableCompanyNames.split(",")) { diff --git a/src/rails/game/specific/_18EU/StartCompany_18EU.java b/src/rails/game/specific/_18EU/StartCompany_18EU.java index 6527454..1726d61 100644 --- a/src/rails/game/specific/_18EU/StartCompany_18EU.java +++ b/src/rails/game/specific/_18EU/StartCompany_18EU.java @@ -119,7 +119,7 @@ public class StartCompany_18EU extends StartCompany { in.defaultReadObject(); - CompanyManagerI cmgr = getCompanyManager(); + CompanyManager cmgr = getCompanyManager(); if (minorsToMergeNames != null) { minorsToMerge = new ArrayList<PublicCompany>(); for (String name : minorsToMergeNames.split(",")) { diff --git a/src/rails/ui/swing/ORPanel.java b/src/rails/ui/swing/ORPanel.java index 8edcdea..15d0484 100644 --- a/src/rails/ui/swing/ORPanel.java +++ b/src/rails/ui/swing/ORPanel.java @@ -509,7 +509,7 @@ implements ActionListener, KeyListener, RevenueListener { protected void addCompanynfo() { - CompanyManagerI cm = orUIManager.getGameUIManager().getGameManager().getCompanyManager(); + CompanyManager cm = orUIManager.getGameUIManager().getGameManager().getCompanyManager(); List<CompanyType> comps = cm.getCompanyTypes(); JMenu compMenu, menu, item; @@ -604,7 +604,7 @@ implements ActionListener, KeyListener, RevenueListener { } if (revenue_suggest) { - CompanyManagerI cm = orUIManager.getGameUIManager().getGameManager().getCompanyManager(); + CompanyManager cm = orUIManager.getGameUIManager().getGameManager().getCompanyManager(); for (PublicCompany comp : cm.getAllPublicCompanies()) { if (!comp.hasFloated() || comp.isClosed()) continue; JMenuItem item = new JMenuItem(comp.getId()); @@ -626,7 +626,7 @@ implements ActionListener, KeyListener, RevenueListener { mapGraph = NetworkGraphBuilder.optimizeGraph(mapGraph); NetworkGraphBuilder.visualize(mapGraph, "Optimized Map Network"); } else { - CompanyManagerI cm = gm.getCompanyManager(); + CompanyManager cm = gm.getCompanyManager(); PublicCompany company = cm.getPublicCompany(companyName); // // NetworkGraphBuilder nwGraph = NetworkGraphBuilder.create(gm); diff --git a/src/test/GameTestServlet.java b/src/test/GameTestServlet.java index 3c3deaf..764d051 100644 --- a/src/test/GameTestServlet.java +++ b/src/test/GameTestServlet.java @@ -51,7 +51,7 @@ * * private PlayerManager playerManager = null; * - * private CompanyManagerI companyManager = null; + * private CompanyManager companyManager = null; * * private Round currentRound = null; * @@ -505,7 +505,7 @@ * out.append("<table class=bordertable cellspacing=0 cellpadding=0>\n"); * out.append("<tr><th>Company</th><th>Par</th><th>Price</th><th>Cash</th><th>Revenue</th>") * .append("<th>Privates</th><th>IPO</th><th>Pool</th></tr>\n"); - * CompanyManagerI compMgr = Game.getCompanyManager(); iterator = + * CompanyManager compMgr = Game.getCompanyManager(); iterator = * compMgr.getAllPublicCompanies().iterator(); while (iterator.hasNext()) { * company = (PublicCompany) iterator.next(); companyName = company.getName(); * companyNumber = company.getCompanyNumber(); out.append("<tr><td>" + diff --git a/src/test/StockMarketTestServlet.java b/src/test/StockMarketTestServlet.java index f63fc2d..939defe 100644 --- a/src/test/StockMarketTestServlet.java +++ b/src/test/StockMarketTestServlet.java @@ -68,7 +68,7 @@ /* Process the action performed. Note: companies not mentioned yet. */ // iterator = game.getCompanyManager().getAllCompanies().iterator(); /* - * CompanyManagerI compMgr = Game.getCompanyManager(); iterator = + * CompanyManager compMgr = Game.getCompanyManager(); iterator = * compMgr.getAllPublicNames().iterator(); while (iterator.hasNext()) { * //company = (Company) iterator.next(); comp = (Company) * compMgr.getPublicCompany((String) iterator.next()); if (!(comp instanceof @@ -159,7 +159,7 @@ * action=\"http://localhost:8080/18xx/servlet/game.test.StockMarketTestServlet\">\n"); * out.append( "<form method=\"POST\" action=\"" + servletPrefix + * "game.test.StockMarketTestServlet\">\n"); out.append("<table - * cellspacing=\"0\" cellpadding=\"0\">\n"); CompanyManagerI compMgr = + * cellspacing=\"0\" cellpadding=\"0\">\n"); CompanyManager compMgr = * Game.getCompanyManager(); iterator = * compMgr.getAllPublicCompanies().iterator(); while (iterator.hasNext()) { * company = (PublicCompany) iterator.next(); companyName = company.getName(); diff --git a/src/test/StockTest.java b/src/test/StockTest.java index ace4aad..3d53620 100644 --- a/src/test/StockTest.java +++ b/src/test/StockTest.java @@ -43,8 +43,8 @@ * //ComponentManager.configureInstance(elem); * * ComponentManager componentMan = ComponentManager.getInstance(); - * CompanyManagerI companyManager = (CompanyManagerI) componentMan - * .findComponent(CompanyManagerI.COMPONENT_NAME); + * CompanyManager companyManager = (CompanyManager) componentMan + * .findComponent(CompanyManager.COMPONENT_NAME); * * List companies = companyManager.getAllCompanies(); * System.out.println(companies.size() + " companies are registered"); for (int commit 2cc6100e81921f30fba7aa5ecc08ea4d2fb65e30 Author: Stefan Frey <ste...@we...> Date: Wed Jun 13 19:46:52 2012 +0200 Removed Round Interface and renamed AbstractRound to Round diff --git a/src/rails/game/AbstractRound.java b/src/rails/game/AbstractRound.java deleted file mode 100644 index 03fe440..0000000 --- a/src/rails/game/AbstractRound.java +++ /dev/null @@ -1,545 +0,0 @@ -package rails.game; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import rails.common.*; -import rails.game.action.*; -import rails.game.model.CashOwner; -import rails.game.model.MoneyModel; -import rails.game.model.PortfolioModel; -import rails.game.special.SpecialProperty; -import rails.game.state.AbstractItem; -import rails.game.state.ArrayListState; -import rails.game.state.BooleanState; -import rails.game.state.ChangeStack; -import rails.game.state.Item; -import rails.game.state.Portfolio; - -/** - * @author Erik Vos - */ -public abstract class AbstractRound extends AbstractItem implements Round { - - protected PossibleActions possibleActions = PossibleActions.getInstance(); - protected GuiHints guiHints = null; - - protected static Logger log = - LoggerFactory.getLogger(AbstractRound.class.getPackage().getName()); - - protected GameManager gameManager = null; - protected CompanyManagerI companyManager = null; - protected PlayerManager playerManager = null; - protected Bank bank = null; - protected PortfolioModel ipo = null; - protected PortfolioModel pool = null; - protected PortfolioModel unavailable = null; - protected PortfolioModel scrapHeap = null; - protected StockMarket stockMarket = null; - protected MapManager mapManager = null; - - protected final BooleanState wasInterrupted = BooleanState.create(false); - - protected ChangeStack changeStack = null; - - - /** Autopasses */ - // TODO: Should this be moved to the StockRound classes? - // Only initialized if used - protected ArrayListState<Player> autopasses = null; - protected ArrayListState<Player> canRequestTurn = null; - protected ArrayListState<Player> hasRequestedTurn = null; - - /** - * Constructor with the GameManager, will call setGameManager with the parameter to initialize - * - * @param aGameManager The GameManager Object needed to initialize the Round Class - * - */ - public AbstractRound (GameManager aGameManager) { - - this.gameManager = aGameManager; - - if (gameManager == null) { - companyManager = null; - } else { - companyManager = gameManager.getCompanyManager(); - playerManager = gameManager.getPlayerManager(); - bank = gameManager.getBank(); - ipo = bank.getIpo(); - pool = bank.getPool(); - unavailable = bank.getUnavailable(); - scrapHeap = bank.getScrapHeap(); - stockMarket = gameManager.getStockMarket(); - mapManager = gameManager.getMapManager(); - - changeStack = gameManager.getChangeStack(); - } - - guiHints = gameManager.getUIHints(); - guiHints.setCurrentRoundType(getClass()); - } - - @Override - public void init(Item parent, String id) { - super.init(parent, id); - wasInterrupted.init(this, "RoundInterrupted"); - } - - public Player getCurrentPlayer() { - - if (gameManager != null) return gameManager.getCurrentPlayer(); - return null; - } - - /** - * @return Returns the currentPlayerIndex. - */ - public int getCurrentPlayerIndex() { - return getCurrentPlayer().getIndex(); - } - - public void setCurrentPlayerIndex(int newIndex) { - gameManager.setCurrentPlayerIndex(newIndex); - } - - public void setCurrentPlayer(Player player) { - gameManager.setCurrentPlayer(player); - } - - protected List<Player> getPlayers() { - return gameManager.getPlayers(); - } - - protected int getNumberOfPlayers() { - return gameManager.getNumberOfPlayers(); - } - - protected int getNumberOfActivePlayers () { - int number = 0; - for (Player player : getPlayers()) { - if (!player.isBankrupt()) number++; - } - return number; - } - - public Phase getCurrentPhase() { - return gameManager.getCurrentPhase(); - } - - /** Allows round instances to tell the UI what type of window to raise. - * Normally the type corresponds to the round type (e.g. OperatingRound - * needs ORWindow), but sometimes deviations occur (such as the - * CGRFormationRound, which isn't a StockRound type but needs StatusWindow). - * @return - */ - public Class<? extends Round> getRoundTypeForUI () { - return this.getClass(); - } - - public String getGameOption (String name) { - return gameManager.getGameOption(name); - } - - // TODO: Remove as this is abstract class? - public String getHelp() { - // TODO Auto-generated method stub - return null; - } - - // TODO: Remove as this is abstract class? - public List<SpecialProperty> getSpecialProperties() { - // TODO Auto-generated method stub - return null; - } - - public boolean process(PossibleAction action) { - return true; - } - - protected boolean exchangeTokens(ExchangeTokens action, boolean linkedMoveSet) { - - String errMsg = null; - - List<ExchangeableToken> tokens = action.getTokensToExchange(); - int min = action.getMinNumberToExchange(); - int max = action.getMaxNumberToExchange(); - int exchanged = 0; - - checks: { - - for (ExchangeableToken token : tokens) { - if (token.isSelected()) exchanged++; - } - if (exchanged < min || exchanged > max) { - errMsg = LocalText.getText("WrongNumberOfTokensExchanged", - action.getCompany(), - min, max, exchanged); - break checks; - } - } - - if (errMsg != null) { - DisplayBuffer.add(LocalText.getText("CannotExchangeTokens", - action.getCompany(), - action.toString(), - errMsg)); - - return false; - } - - // TODO: changeStack.start(true); - // FIMXE: if (linkedMoveSet) changeStack.linkToPreviousMoveSet(); - - if (exchanged > 0) { - MapHex hex; - Stop city; - String cityName, hexName; - int cityNumber; - String[] ct; - PublicCompany comp = action.getCompany(); - - ReportBuffer.add(""); - - for (ExchangeableToken token : tokens) { - cityName = token.getCityName(); - ct = cityName.split("/"); - hexName = ct[0]; - try { - cityNumber = Integer.parseInt(ct[1]); - } catch (NumberFormatException e) { - cityNumber = 1; - } - hex = mapManager.getHex(hexName); - city = hex.getStop(cityNumber); - - if (token.isSelected()) { - - // For now we'll assume that the old token(s) have already been removed. - // This is true in the 1856 CGR formation. - if (hex.layBaseToken(comp, city.getNumber())) { - /* TODO: the false return value must be impossible. */ - ReportBuffer.add(LocalText.getText("ExchangesBaseToken", - comp.getId(), - token.getOldCompanyName(), - city.getId())); - comp.layBaseToken(hex, 0); - } - } else { - ReportBuffer.add(LocalText.getText("NoBaseTokenExchange", - comp.getId(), - token.getOldCompanyName(), - city.getId())); - } - } - } - - return true; - } - - - /** - * Default version, does nothing. Subclasses should override this method - * with a real version. - */ - // TODO: Remove as this is abstract class? - public boolean setPossibleActions() { - return false; - } - - /** Set the operating companies in their current acting order */ - public List<PublicCompany> setOperatingCompanies() { - return setOperatingCompanies (null, null); - } - - public List<PublicCompany> setOperatingCompanies(List<PublicCompany> oldOperatingCompanies, - PublicCompany lastOperatingCompany) { - - Map<Integer, PublicCompany> operatingCompanies = - new TreeMap<Integer, PublicCompany>(); - List<PublicCompany> newOperatingCompanies; - StockSpace space; - int key; - int minorNo = 0; - boolean reorder = gameManager.isDynamicOperatingOrder() - && oldOperatingCompanies != null && lastOperatingCompany != null; - - int lastOperatingCompanyndex; - if (reorder) { - newOperatingCompanies = oldOperatingCompanies; - lastOperatingCompanyndex = oldOperatingCompanies.indexOf(lastOperatingCompany); - } else { - newOperatingCompanies = companyManager.getAllPublicCompanies(); - lastOperatingCompanyndex = -1; - } - - for (PublicCompany company : newOperatingCompanies) { - if (!reorder && !canCompanyOperateThisRound(company)) continue; - - if (reorder - && oldOperatingCompanies.indexOf(company) <= lastOperatingCompanyndex) { - // Companies that have operated this round get lowest keys - key = oldOperatingCompanies.indexOf(company); - } else if (company.hasStockPrice()) { - // Key must put companies in reverse operating order, because sort - // is ascending. - space = company.getCurrentSpace(); - key = 1000000 * (999 - space.getPrice()) - + 10000 * (99 - space.getColumn()) - + 100 * (space.getRow()+1) - + space.getStackPosition(company); - } else { - key = 50 + ++minorNo; - } - operatingCompanies.put(new Integer(key), company); - } - - return new ArrayList<PublicCompany>(operatingCompanies.values()); - } - - /** Can a public company operate? (Default version) */ - protected boolean canCompanyOperateThisRound (PublicCompany company) { - return company.hasFloated() && !company.isClosed(); - } - - /** - * Check if a company must be floated, and if so, do it. <p>This method is - * included here because it is used in various types of Round. - * - * @param company - */ - protected void checkFlotation(PublicCompany company) { - - if (!company.hasStarted() || company.hasFloated()) return; - - if (getSoldPercentage(company) >= company.getFloatPercentage()) { - // Company floa... [truncated message content] |