Coverage Report - com.buckosoft.fibs.domain.GroupOfPlayers
 
Classes in this File Line Coverage Branch Coverage Complexity
GroupOfPlayers
100%
44/44
100%
2/2
1.1
 
 1  
 /******************************************************************************
 2  
  * GroupOfPlayers.java - A group of Players
 3  
  * $Id$
 4  
  * 
 5  
  * BuckoFIBS - Backgammon by BuckoSoft
 6  
  * Copyright© 2010 - Dick Balaska - BuckoSoft, Corp.
 7  
  * 
 8  
  * $Log$
 9  
  * Revision 1.8  2011/05/09 17:10:29  dick
 10  
  * Use color as a long, strictly because java doesn't have unsigned int.
 11  
  *
 12  
  * Revision 1.7  2011/05/07 05:49:31  dick
 13  
  * colorStore is a long, not an int.
 14  
  *
 15  
  * Revision 1.6  2011/01/01 20:32:05  dick
 16  
  * Add some debug.
 17  
  *
 18  
  * Revision 1.5  2011/01/01 06:24:59  dick
 19  
  * Javadoc.
 20  
  *
 21  
  * Revision 1.4  2011/01/01 02:30:19  dick
 22  
  * We need to keep the whole list of PlayerGroups.  Hibernate goes bonkers recreating the rows.
 23  
  * So, the master is the playerGroups list and we duplicate that to the players<Integer> list.
 24  
  *
 25  
  * Revision 1.3  2011/01/01 00:17:12  dick
 26  
  * PlayerGroup had to move to a top level domain object so that the hibernate mapping would work.
 27  
  * It doesn't like mapping to subclasses.
 28  
  *
 29  
  * Revision 1.2  2010/12/31 05:35:31  dick
 30  
  * A group of Players.
 31  
  *
 32  
  * Revision 1.1  2010/12/30 17:41:08  dick
 33  
  * Define a Group of Players.
 34  
  *
 35  
  */
 36  
 
 37  
 /* 
 38  
  * This program is free software: you can redistribute it and/or modify
 39  
  * it under the terms of the GNU General Public License as published by
 40  
  * the Free Software Foundation, either version 3 of the License, or
 41  
  * (at your option) any later version.
 42  
  *
 43  
  * This program is distributed in the hope that it will be useful,
 44  
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 45  
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 46  
  * GNU General Public License for more details.
 47  
  *
 48  
  * You should have received a copy of the GNU General Public License
 49  
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 50  
  *
 51  
  * The Original Code is BuckoFIBS, <http://www.buckosoft.com/BuckoFIBS/>.
 52  
  * The Initial Developer of the Original Code is Dick Balaska and BuckoSoft, Corp.
 53  
  * 
 54  
  */
 55  
 package com.buckosoft.fibs.domain;
 56  
 
 57  
 import java.awt.Color;
 58  
 import java.util.LinkedList;
 59  
 import java.util.List;
 60  
 
 61  
 /** A group of Players.
 62  
  * @author Dick Balaska
 63  
  * @since 2010/12/30
 64  
  * @version $Revision$ <br> $Date$
 65  
  * @see PlayerGroup
 66  
  * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/domain/GroupOfPlayers.java">cvs GroupOfPlayers.java</a>
 67  
  */
 68  
 public class GroupOfPlayers {
 69  
         private        final static boolean DEBUG = false;
 70  
 
 71  
         private        int                id;
 72  33
         private String groupName = "";
 73  33
         private        Color        color = Color.black;
 74  33
         private        List<PlayerGroup> playerGroups = new LinkedList<PlayerGroup>();
 75  33
         private        LinkedList<Integer>        players = new LinkedList<Integer>();
 76  33
         private boolean ignore = false;
 77  33
         private boolean active = false;
 78  33
         private        boolean        dirty = true;
 79  
 
 80  
         /** Default empty constructor
 81  
          */
 82  60
         public GroupOfPlayers() {}
 83  
 
 84  
         /** Convienence constructor to set some fields
 85  
          * @param groupName The name of this new GroupOfPlayers
 86  
          * @param color The color to display this group in.
 87  
          */
 88  3
         public GroupOfPlayers(String groupName, Color color) {
 89  3
                 this.groupName = groupName;
 90  3
                 this.color = color;
 91  3
         }
 92  
 
 93  
         
 94  
         /** Return the unique id for this GroupOfPlayers
 95  
          * @return the id
 96  
          */
 97  
         public int getId() {
 98  34
                 return id;
 99  
         }
 100  
 
 101  
         /** Set the unique id for this GroupOfPlayers
 102  
          * @param id the id to set
 103  
          */
 104  
         public void setId(int id) {
 105  7
                 this.id = id;
 106  7
         }
 107  
 
 108  
         /** Get the name of this group.
 109  
          * @return the name
 110  
          */
 111  
         public String getGroupName() {
 112  25
                 return groupName;
 113  
         }
 114  
         /** Set the name of this group.
 115  
          * @param groupName the name to set
 116  
          */
 117  
         public void setGroupName(String groupName) {
 118  5
                 this.groupName = groupName;
 119  5
         }
 120  
         /** Get the color to display group members in.
 121  
          * @return the color
 122  
          */
 123  
         public Color getColor() {
 124  3
                 return color;
 125  
         }
 126  
         /** Set the color to display group members in.
 127  
          * @param color the color to set
 128  
          */
 129  
         public void setColor(Color color) {
 130  2
                 this.color = color;
 131  2
         }
 132  
         
 133  
         /** Get the color in a database friendly format.
 134  
          * @return the RGB triple in a long format
 135  
          */
 136  
         public long getColorStore() {
 137  24
                 return(this.color.getRGB());
 138  
         }
 139  
         
 140  
         /** Set the color from a database friendly format.
 141  
          * @param rgb
 142  
          */
 143  
         public void setColorStore(long rgb) {
 144  7
                 this.color = new Color((int)rgb);
 145  7
         }
 146  
         
 147  
         /** Get the list of Players in this group.
 148  
          * @return the players
 149  
          */
 150  
         public LinkedList<Integer> getPlayers() {
 151  2
                 return players;
 152  
         }
 153  
 
 154  
         /** Get the PlayserGroup list, the database likes to do this for saving
 155  
          * @return A reference to the PlayerGroup list.
 156  
          */
 157  
         public List<PlayerGroup>        getPlayerGroups() {
 158  11
                 return(this.playerGroups);
 159  
         }
 160  
 
 161  
         /** Set the PlayerGroup list, usually after loading it from the database.
 162  
          * Upon setting this, update the handy players list. 
 163  
          * @param playerGroups The PlayerGroups for this group
 164  
          */
 165  
         public void setPlayerGroups(List<PlayerGroup> playerGroups) {
 166  4
                 this.playerGroups = playerGroups;
 167  4
                 this.players.clear();
 168  4
                 for (PlayerGroup pg : playerGroups)
 169  4
                         this.players.add(pg.getPlayerId());
 170  4
         }
 171  
 
 172  
         /** Add this player to this group.
 173  
          * @param playerId The id of the player to add to this group.
 174  
          */
 175  
         public void addPlayer(int playerId) {
 176  
                 if (DEBUG)
 177  
                         System.out.println("GroupOfPlayers: addPlayer " + playerId);
 178  4
                 this.playerGroups.add(new PlayerGroup(id, playerId));
 179  4
                 this.players.add(playerId);
 180  4
                 this.dirty = true;
 181  4
         }
 182  
 
 183  
         /** Is this a list of players to ignore?
 184  
          * @return the ignore
 185  
          */
 186  
         public boolean isIgnore() {
 187  24
                 return ignore;
 188  
         }
 189  
 
 190  
         /** Are ignoring this list of players
 191  
          * @param ignore the ignore to set
 192  
          */
 193  
         public void setIgnore(boolean ignore) {
 194  7
                 this.ignore = ignore;
 195  7
         }
 196  
 
 197  
         /** Did the user select this Group to be active?
 198  
          * @return the active
 199  
          */
 200  
         public boolean isActive() {
 201  24
                 return active;
 202  
         }
 203  
 
 204  
         /** The user changed this Group's active state.
 205  
          * @param active the active to set
 206  
          */
 207  
         public void setActive(boolean active) {
 208  7
                 this.active = active;
 209  7
         }
 210  
 
 211  
         /** Does this Group need to be saved to disk?
 212  
          * @return the dirty
 213  
          */
 214  
         public boolean isDirty() {
 215  15
                 return dirty;
 216  
         }
 217  
 
 218  
         /** Set whether this Group needs to be saved or not.
 219  
          * @param dirty the dirty to set
 220  
          */
 221  
         public void setDirty(boolean dirty) {
 222  13
                 this.dirty = dirty;
 223  13
         }
 224  
 }