/* * Created on 05.01.2005 * * $Id$ */ package casino.player; import casino.*; import casino.test.*; /** * Dieser Aspekt enthaelt die Default-Implementierung fuer einen Spieler. * * @author oliver * @since 05.01.2005 * @version $revision$ */ public aspect RoulettePlayerAspect { public String RoulettePlayer.name = null; public Konto RoulettePlayer.konto = null; /** * Lassen wir den Computer automatisch den Wett-Einsatz taetigen - * 50 Chips auf "Pair" - die Chips dafür werden gleich vom Konto * abgehoben. * * @return den Wett-Einsatz */ public Einsatz RoulettePlayer.getEinsatz() { Einsatz einsatz = new Einsatz(); einsatz.setPair(50); this.setEinsatz(einsatz); return einsatz; } /** * Der Einsatz geht vom Konto ab. */ public void RoulettePlayer.setEinsatz(Einsatz einsatz) { konto.abheben(einsatz.getBetrag()); } /** * Der Gweinn wird auf dem Konto verbucht. */ public void RoulettePlayer.setGewinn(Einsatz gewinn) { konto.einzahlen(gewinn.getBetrag()); } /** * Wieviel ist denn noch auf dem Konto? */ public int RoulettePlayer.getKontostand() { return this.konto.abfragen(); } /** * Spielername zurueckgeben. */ public String RoulettePlayer.toString() { return this.name; } /** * Die Attribute "name" und "konto" duerfen nur von der * RoulettePlayer-Klasse selbst verändert werden * (und von ein paar Aspekten und Test-Klassen) */ declare error : (set(String RoulettePlayer+.name) || set(Konto RoulettePlayer+.konto)) && !within(RoulettePlayer+) && !within(RoulettePlayerAspect) && !within(*Test) && !within(TestAspect) : "nur RoulettePlayer darf dieses Attribut setzen!"; }