[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] New to Aspectj
|
You where right about that, im including my full code below as i want to ask
if you could advise on any places where i could maybe add some interesting
or usefull aspects as an example of what they can do.
thanks
public class RaceSim {
public static void main(String[] args) {
//Creating 8 heats
Heat heat1Round1 = new Heat1();
Heat heat2Round1 = new Heat2();
Heat heat3Round1 = new Heat3();
Heat heat4Round1 = new Heat4();
Heat heat5Round1 = new Heat5();
Heat heat6Round1 = new Heat6();
Heat heat7Round1 = new Heat7();
Heat heat8Round1 = new Heat8();
Runner[] r = new Runner[65];
for(int i = 1; i <= 64; i++) {
r[i] = new Runner("firstname "+i, "lastname "+i, 0.00);
}
int count=1;
for(int i=1; i<=64;i++){
if(count<=8){
heat1Round1.addRunner(r[i]);
}
else if(count<=16){
heat2Round1.addRunner(r[i]);
}else if(count<=24){
heat3Round1.addRunner(r[i]);
}else if(count<=32){
heat4Round1.addRunner(r[i]);
}else if(count<=40){
heat5Round1.addRunner(r[i]);
}else if(count<=48){
heat6Round1.addRunner(r[i]);
}else if(count<=56){
heat7Round1.addRunner(r[i]);
}else {
heat8Round1.addRunner(r[i]);
}
count+=1;
}
Round round1 = new Round1();
round1.addHeat(heat1Round1);
round1.addHeat(heat2Round1);
round1.addHeat(heat3Round1);
round1.addHeat(heat4Round1);
round1.addHeat(heat5Round1);
round1.addHeat(heat6Round1);
round1.addHeat(heat7Round1);
round1.addHeat(heat8Round1);
round1.displayRunners();
heat1Round1.runRace();
heat2Round1.runRace();
heat3Round1.runRace();
heat4Round1.runRace();
heat5Round1.runRace();
heat6Round1.runRace();
heat7Round1.runRace();
heat8Round1.runRace();
//Finding winners for heats
heat1Round1.getWinnersFromHeat();
heat2Round1.getWinnersFromHeat();
heat3Round1.getWinnersFromHeat();
heat4Round1.getWinnersFromHeat();
heat5Round1.getWinnersFromHeat();
heat6Round1.getWinnersFromHeat();
heat7Round1.getWinnersFromHeat();
heat8Round1.getWinnersFromHeat();
round1.displayHeats();
//creating heats for round2
Heat heat1Round2 =new Heat1();
Heat heat2Round2 =new Heat2();
Heat heat3Round2 =new Heat3();
Heat heat4Round2 =new Heat4();
//getting previous winners form heats from round 1
heat1Round2.getWinnersFromPreviousRound(heat1Round1);
heat1Round2.getWinnersFromPreviousRound(heat2Round1);
heat2Round2.getWinnersFromPreviousRound(heat3Round1);
heat2Round2.getWinnersFromPreviousRound(heat4Round1);
heat3Round2.getWinnersFromPreviousRound(heat5Round1);
heat3Round2.getWinnersFromPreviousRound(heat6Round1);
heat4Round2.getWinnersFromPreviousRound(heat7Round1);
heat4Round2.getWinnersFromPreviousRound(heat8Round1);
//running race with combined winners of first heats from round 1
heat1Round2.runRace();
heat2Round2.runRace();
heat3Round2.runRace();
heat4Round2.runRace();
//getting winners
heat1Round2.getWinnersFromHeat();
heat2Round2.getWinnersFromHeat();
heat3Round2.getWinnersFromHeat();
heat4Round2.getWinnersFromHeat();
//creating round 2
Round round2 = new Round2();
//adding heat 1 to round 2
round2.addHeat(heat1Round2);
round2.addHeat(heat2Round2);
round2.addHeat(heat3Round2);
round2.addHeat(heat4Round2);
//displaying heat 1 round 2
round2.displayHeats();
Heat semiFinal1 =new Heat1();
Heat semiFinal2 =new Heat2();
semiFinal1.getWinnersFromPreviousRound(heat1Round2);
semiFinal1.getWinnersFromPreviousRound(heat2Round2);
semiFinal2.getWinnersFromPreviousRound(heat3Round2);
semiFinal2.getWinnersFromPreviousRound(heat4Round2);
semiFinal1.runRace();
semiFinal2.runRace();
semiFinal1.getWinnersFromHeat();
semiFinal2.getWinnersFromHeat();
Round semiFinal = new semiFinal();
semiFinal.addHeat(semiFinal1);
semiFinal.addHeat(semiFinal2);
semiFinal.displayHeats();
Heat Final =new Heat1();
Final.getWinnersFromPreviousRound(semiFinal1);
Final.getWinnersFromPreviousRound(semiFinal2);
Final.runRace();
Final.getWinnersFromFinal();
Round round4 = new Round4();
round4.addHeat(Final);
round4.displayHeats();
}
}
import java.util.ArrayList;
import java.util.Iterator;
public abstract class Round {
private ArrayList heats = new ArrayList();
protected String name;
public String getName() {
return name;
}
public Round() {}
public void addHeat(Heat heat) {
heats.add(heat);
}
public String displayHeats(){
Iterator iter =heats.iterator();
String result="";
while(iter.hasNext()){
Heat aHeat=(Heat)iter.next();
System.out.println(aHeat.name +this.name +"\n"+
aHeat.getRunners().toString());
System.out.println(aHeat.name+this.name +"\nWinners"+
aHeat.getWinners());
}
return result;
}
public String displayRunners(){
Iterator iter =heats.iterator();
String result="";
while(iter.hasNext()){
Heat aHeat=(Heat)iter.next();
System.out.println(aHeat.name +this.name +"\n"+
aHeat.getRunners().toString());
}
return result;
}
public String toString(){
return name;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Random;
public abstract class Heat {
private ArrayList runners = new ArrayList();
private ArrayList winners = new ArrayList();
public ArrayList getRunners(){
return runners;
}
public ArrayList getWinners(){
return winners;
}
protected String name;
public String getName(){
return name;
}
public Heat(){}
public void addRunner(Runner runner){
runners.add(runner);
}
public String toString(){
return name;
}
public static double createRandomTime() {
Random ranGen = new Random();
return ranGen.nextDouble() + 9;
}
public void runRace() {
Iterator iter = runners.iterator();
while(iter.hasNext()){
Runner aRunner =(Runner)iter.next();
aRunner.setTime(createRandomTime());
}
}
public void getWinnersFromHeat(){
int count=0;
Collections.sort(runners);
Iterator iter = runners.iterator();
while(iter.hasNext()){
Runner aRunner= (Runner)iter.next();
if(count!=4){
winners.add(aRunner);
}else
{
break;
}
count+=1;
}
}
public void getWinnersFromFinal(){
int count=0;
Collections.sort(runners);
Iterator iter = runners.iterator();
while(iter.hasNext()){
Runner aRunner= (Runner)iter.next();
if(count!=1){
winners.add(aRunner);
}else
{
break;
}
count+=1;
}
}
public void getWinnersFromPreviousRound(Heat oldHeat){
this.addRunner((Runner) oldHeat.getWinners().get(0));
this.addRunner((Runner) oldHeat.getWinners().get(1));
this.addRunner((Runner) oldHeat.getWinners().get(2));
this.addRunner((Runner) oldHeat.getWinners().get(3));
}
}
public class Runner implements Comparable{
private String fName;
private String sName;
private double time;
public Runner(){
}
public Runner(String fName, String sName, double time){
this.fName = fName;
this.sName = sName;
this.time = time;
}
public double getTime(){
return time;
}
public void setTime(double time){
double aTime =(double)time*100;
aTime =(int)aTime;
aTime=aTime/100;
this.time= aTime;
}
public String getfName() {
return fName;
}
public String getsName() {
return sName;
}
public String toString(){
return fName+" "+sName+" "+time;
}
public int compareTo(Object obj) {
// TODO Auto-generated method stub
Runner r = (Runner)obj;
if(this.time<r.getTime()){
return 0;
}else if(this.time>r.getTime()){
return 1;
}else{
return -1;
}
}
}
public final class Heat1 extends Heat{
public Heat1() {
this.name="Heat1";
// TODO Auto-generated constructor stub
}
}
public final class Round1 extends Round{
public Round1(){
this.name="Round1";
}
}
--
View this message in context: http://aspectj.2085585.n4.nabble.com/New-to-Aspectj-tp3042137p3047865.html
Sent from the AspectJ - users mailing list archive at Nabble.com.