|
Freedom, Liberty and Democracy
Here is my attempt to define these words -- Hash codes are important :
# Aspiration.java
public class Aspiration {
private boolean done;
private String description;
private Liberty liberty;
public boolean execute (Liberty liberty) throws FavoritismException {
this.liberty = liberty;
if (isImmoral () && done) {
throw new FavoritismException ();
}
done = true;
return done;
}
private boolean isImmoral () {
return (!liberty.isLegal (this));
}
public String getDescription () {
return description;
}
public void setDescription (String description) {
this.description = description;
}
public String toString () {
return description;
}
}
# Democracy.java
import java.util.Set;
import java.util.HashSet;
public interface Democracy {
public Set ruleBook = new HashSet ();
public Freedom freedom = new Freedom ();
public boolean execute (Aspiration aspiration) throws FavoritismException;
}
# FavoritismException.java
public class FavoritismException extends Exception {
public FavoritismException () {
super ();
}
public FavoritismException (Throwable throwable) {
super (throwable);
}
}
# Freedom.java
public class Freedom {
public int hashCode () {
return 27;
}
public boolean equals (Object obj) {
if (obj instanceof Democracy) {
return (((Democracy)obj).freedom.hashCode () == hashCode ());
}
return false;
}
}
# Liberty.java
public class Liberty implements Democracy {
public Freedom freedom = new Freedom ();
static {
ruleBook.add ("You can dance");
ruleBook.add ("You can sing");
ruleBook.add ("You can play");
}
public int hashCode () {
return 15;
}
public boolean equals (Object obj) {
return (freedom.equals (obj));
}
public boolean execute (Aspiration aspiration)
throws FavoritismException {
return (aspiration.execute (this));
}
public boolean isLegal (Aspiration aspiration) {
if (ruleBook.contains (aspiration.getDescription ())) {
return true;
}
return false;
}
}
(2005-01-23 20:12:46.0/2005-01-23 20:01:16.0)
Permalink
Trackback: http://blogs.sun.com/ashish/entry/freedom_liberty_and_democracy
|