NAVIGATIE

Freetime overzicht
Zoeken


  RUBRIEKEN

FAQ / Help
Wat mag niet?
WZL Wedstrijden
WZL Chat
WZL Toolbar
WZL Statistieken
WZL leden
WZL shop
E-cards

RSS

Fun-feed
Babe-feed
Stud-feed

Een groot aantal pokerrooms geven de mogelijkheid om poker te spelen op internet en geld te storten via het veilige iDeal betaalsysteem.
Overzicht » Computer » Programmeren » The real story about how Anakin Skywalker became Darth Vader
Je moet ingelogd zijn om te kunnen posten...

Login gegevens
Gebruikersnaam
Wachtwoord



Nog geen lid van de WzL-groep? Lid worden!
Wachtwoord vergeten? Stuur mijn wachtwoord! | Info...
Origineel bericht
Losealot
Sinds 24/9/2004
T: 55 R: 1358
1/6/2005 - 9:34u Quote
aangezien de normale mensen bij fun dees nie gaan snappen...
public class Princess implements ExecutorService {
public static final Princess PADME = new Princess();

// private member
private StarShip ship;

private Princess() {
this.setDefaultLocale(Locale.EN);
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Princess.this.changeHairStyle();
Princess.this.changeClothes();
}
};
timer.scheduleAtFixedRate(task, new Date(), 1000);
}
}

public class JediKnight implements ExecutorService {
public static final JediKnight ANAKIN = new JediKnight(false);
public static final JediKnight OBI_WAN = new JediKnight(false);
public static final JediKnight YODA = new JediKnight(true);

private JediKnight(boolean isYoda) {
if (!isYoda) {
this.setDefaultLocale(Locale.EN);
}
else {
Locale yodaLocale = Locale.EN;
this.setDefaultLocale(Utils.shuffle(yodaLocale));
}
this.setLightSabre(LightSabreFactory.getInstance());
this.setGoodLooking(!isYoda);
}
}

public class Sith {
public static final Sith LORD = new Sith();

private Sith() {
this.setDefaultLocale(Locale.EN);
this.setClothes(DarkRobeFactory.getInstance());
this.setLightSabre(LightSabreFactory.getInstance());
}
}

public static main() {
// The following line has been commented out so as not
// to confuse fans who never did it

// Utils.initChildren(JediKnight.ANAKIN, Princess.PADME);

// Use JDK 5.0 concurrency package
Future<Set<Child>> padmeFuture = Princess.PADME.submit(
new Callable<Set<Child>>() {
public Set<Child> call() {
try {
int weeks = (int)(36+4.0*Math.random());
wait(weeks*7*24*60*60*1000);
this = null;
System.gc();
}
finally() {
Child boy = new Child("Luke" );
Child girl = new Child("Leia" );
Set<Child> result = new HashSet<Child>();
result.add(boy);
result.add(girl);
return result;
}
}
}
);

if (JediKnight.ANAKIN.poll(padmeFuture) instanceof ThreadDeath) {
JediKnight.ANAKIN.alarm();

// use some marketing ideas
Sith.LORD.promise(JediKnight.ANAKIN, new RuntimePermission("object.restore.afterGC" ));
Sith.LORD.promise(JediKnight.ANAKIN, new RuntimePermission("force.power.dark.*" ));
Sith.LORD.promise(JediKnight.ANAKIN, new RuntimePermission("force.power.*" ));
Sith.LORD.promise(JediKnight.ANAKIN, new RuntimePermission("force.*" ));

JediKnight.ANAKIN.setInternalName("Darth Vader" );

JediKnight.ANAKIN.promise(Princess.PADME, new RuntimePermission("*" ));

Princess.PADME.alarm();
Princess.PADME.boardShip();

// Use JDK 5.0 concurrency package
Future<StarShip> anakinFuture =
JediKnight.OBI_WAN.submit(
new Callable<StarShip>() {
public RuntimePermission call() {
try {
Class princessClass = Princess.getClass();
Field shipField = princessClass.getDeclaredField("ship" );
// will never throw SecurityException on Jedi Knight
shipField.setAccessible(true);
JediKnight.this.add(new RuntimePermission("object.ship.board.*" ));
return (StarShip)shipField.get(Princess.PADME);
}
catch (SecurityException se) {
// never supposed to happen to Jedi Knight
System.out.println("Internal error. Contact George Lucas." );
System.reboot();
}
}
}
);

StarShip padmeShip = anakinFuture.call();
padmeShip.put(JediKnight.OBI_WAN);

JediKnight.ANAKIN.see(Princess.PADME);
Princess.PADME.removeLove(JediKnight.ANAKIN);

JediKnight.ANAKIN.see(JediKnight.OBI_WAN);
JediKnight.ANAKIN.removeLove(Princess.PADME);

JediKnight.OBI_WAN.removeLimbs(JediKnight.ANAKIN);
// note - absolutely no need for GC, Anakin will be collected automatically.

ReferenceQueue<JediKnight> sithWatchList = new ReferenceQueue<JediKnight>();
PhantomReference<JediKnight> anakinRef = sithWatchList.remove();
JediKnight anakinPhantom = anakinRef.get();

Sith DARTH_VADER = Sith.LORD.assemble(anakinPhantom, LimbFactory.getSpareInstances());
MouthPiece newMouthPiece = MouthPieceFactory.getInstance();
// no need to check that it works - guaranteed to work with no noise
DARTH_VADER.add(newMouthPiece);
DARTH_VADER.rise();
}
else {
// TODO - create alternative scenario for Sith revenge
}
}