/*
* GameState.java
*
* Generated by Protege plugin Beanynizer.
* Changes will be lost!
*/
package jadex.bdi.examples.blackjack;
import jadex.commons.SimplePropertyChangeSupport;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.List;
/**
* Java class for concept GameState of blackjack_beans ontology.
*/
public class GameState implements java.beans.BeanInfo
{
//-------- constants ----------
//-------- attributes ----------
/** Attribute for slot dealer.*/
protected Player dealer;
/** Attribute for slot players. */
protected List players;
/** The helper object for bean events. */
public SimplePropertyChangeSupport pcs;
//-------- constructors --------
/**
* Default Constructor. <br>
* Create a new <code>GameState</code>.
*/
public GameState()
{
this(null, null);
}
/**
* Default Constructor. <br>
* Create a new <code>GameState</code>.
*/
public GameState(Player dealer, Player[] players)
{
this.players = new ArrayList();
this.pcs = new SimplePropertyChangeSupport(this);
if(dealer!=null)
setDealer(dealer);
if(players!=null && players.length>0)
setPlayers(players);
}
//-------- accessor methods --------
/**
* Get the dealer of this GameState.
* @return dealer
*/
public Player getDealer()
{
return this.dealer;
}
/**
* Set the dealer of this GameState.
* @param dealer the value to be set
*/
public void setDealer(Player dealer)
{
this.dealer = dealer;
pcs.firePropertyChange("dealer", null, dealer);
}
/**
* Update the dealer of this GameState.
* @param dealer the value to be set
*/
public void updateDealer(Player dealer)
{
this.dealer.setAccount(dealer.getAccount());
this.dealer.setCards(dealer.getCards());
this.dealer.setColorValue(dealer.getColorValue());
this.dealer.setStrategyName(dealer.getStrategyName());
this.dealer.setState(dealer.getState());
pcs.firePropertyChange("dealer", null, dealer);
}
/**
* Get the players of this GameState.
* @return players
*/
public Player[] getPlayers()
{
return (Player[])players.toArray(new Player[players.size()]);
}
/**
* Set the players of this GameState.
* @param players the value to be set
*/
public void setPlayers(Player[] players)
{
this.players.clear();
for(int i = 0; i<players.length; i++)
this.players.add(players[i]);
pcs.firePropertyChange("players", null, players);
}
/**
* Get an players of this GameState.
* @param idx The index.
* @return players
*/
public Player getPlayer(int idx)
{
return (Player)this.players.get(idx);
}
/**
* Set a player to this GameState.
* @param idx The index.
* @param player a value to be added
*/
public void setPlayer(int idx, Player player)
{
this.players.set(idx, player);
pcs.firePropertyChange("players", null, players);
}
/**
* Add a player to this GameState.
* @param player a value to be removed
*/
public void addPlayer(Player player)
{
this.players.add(player);
pcs.firePropertyChange("players", null, players);
}
/**
* Remove a player from this GameState.
* @param player a value to be removed
* @return True when the players have changed.
*/
public boolean removePlayer(Player player)
{
boolean ret = this.players.remove(player);
pcs.firePropertyChange("players", null, players);
return ret;
}
/**
* Add a player to this GameState.
* @param player a value to be removed
*/
public void updateOrAddPlayer(Player player)
{
boolean updated = false;
for(int i=0; i<players.size() && !updated; i++)
{
if(players.get(i)==player)
{
updated = true;
}
else if(players.get(i).equals(player))
{
Player orig = (Player)players.get(i);
orig.setCards(player.getCards());
orig.setAccount(player.getAccount());
orig.setColorValue(player.getColorValue());
orig.setStrategyName(player.getStrategyName());
orig.setState(player.getState());
orig.setBet(player.getBet());
updated = true;
pcs.firePropertyChange("players", null, players);
}
}
if(!updated)
addPlayer(player);
}
/**
* Get a player per name.
* @param name The name.
* @return The player.
*/
public Player getPlayer(String name)
{
assert name!=null;
Player ret = null;
for(int i=0; i<players.size() && ret==null; i++)
{
Player tst = (Player)players.get(i);
if(name.equals(tst.getName()))
ret = tst;
}
return ret;
}
//-------- bean related methods --------
/**
* The property descriptors, constructed on first access.
*/
private java.beans.PropertyDescriptor[] pds = null;
/**
* Get the bean descriptor.
* @return The bean descriptor.
*/
public java.beans.BeanDescriptor getBeanDescriptor()
{
return null;
}
/**
* Get the property descriptors.
* @return The property descriptors.
*/
public java.beans.PropertyDescriptor[] getPropertyDescriptors()
{
if(pds==null)
{
try
{
pds = new java.beans.PropertyDescriptor[]{
new java.beans.PropertyDescriptor("dealer", this.getClass(), "getDealer", "setDealer")
, new java.beans.IndexedPropertyDescriptor("players", this.getClass(),
"getPlayers", "setPlayers", "getPlayer", "setPlayer")
};
}
catch(Exception e)
{
e.printStackTrace();
}
}
return pds;
}
/**
* Get the default property index.
* @return The property index.
*/
public int getDefaultPropertyIndex()
{
return -1;
}
/**
* Get the event set descriptors.
* @return The event set descriptors.
*/
public java.beans.EventSetDescriptor[] getEventSetDescriptors()
{
return null;
}
/**
* Get the default event index.
* @return The default event index.
*/
public int getDefaultEventIndex()
{
return -1;
}
/**
* Get the method descriptors.
* @return The method descriptors.
*/
public java.beans.MethodDescriptor[] getMethodDescriptors()
{
return null;
}
/**
* Get additional bean info.
* @return Get additional bean info.
*/
public java.beans.BeanInfo[] getAdditionalBeanInfo()
{
return null;
}
/**
* Get the icon.
* @return The icon.
*/
public java.awt.Image getIcon(int iconKind)
{
return null;
}
/**
* Load the image.
* @return The image.
*/
public java.awt.Image loadImage(final String resourceName)
{
try
{
final Class c = getClass();
java.awt.image.ImageProducer ip = (java.awt.image.ImageProducer)
java.security.AccessController.doPrivileged(new java.security.PrivilegedAction()
{
public Object run()
{
java.net.URL url;
if((url = c.getResource(resourceName))==null)
{
return null;
}
else
{
try
{
return url.getContent();
}
catch(java.io.IOException ioe)
{
return null;
}
}
}
});
if(ip==null)
return null;
java.awt.Toolkit tk = java.awt.Toolkit.getDefaultToolkit();
return tk.createImage(ip);
}
catch(Exception ex)
{
return null;
}
}
//-------- property methods --------
/**
* Add a PropertyChangeListener to the listener list.
* The listener is registered for all properties.
* @param listener The PropertyChangeListener to be added.
*/
public void addPropertyChangeListener(PropertyChangeListener listener)
{
pcs.addPropertyChangeListener(listener);
}
/**
* Remove a PropertyChangeListener from the listener list.
* This removes a PropertyChangeListener that was registered
* for all properties.
* @param listener The PropertyChangeListener to be removed.
*/
public void removePropertyChangeListener(PropertyChangeListener listener)
{
pcs.removePropertyChangeListener(listener);
}
//-------- additional methods --------
/**
* Get a string representation of this GameState.
* @return The string representation.
*/
public String toString()
{
StringBuffer sb = new StringBuffer("GameState(");
for(int i=0; i<players.size(); i++)
sb.append(players.get(i).toString());
sb.append(dealer);
sb.append(")");
return sb.toString();
}
}