package baf.guide;
import java.util.*;
import baf.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Author extends Item {
String forename, surname;
public static Author forName(String s) throws IOException {
String path = "/authors/"+nameToUrl(s);
return (Author)forPath(path);
}
public Author(String path) throws IOException {
super(path);
// Trim off periods
sortString = "";
StringTokenizer st = new StringTokenizer(name, ".");
while (st.hasMoreElements()) sortString += st.nextElement();
// Convert HTML special characters such as ö
int amp, semi;
while ((amp = sortString.indexOf('&')) != -1) {
semi = sortString.indexOf(';', amp);
if (semi < amp) break; // Should throw exception?
sortString = sortString.substring(0, amp) +
sortString.charAt(amp+1) +
sortString.substring(semi+1);
}
// Convert to lower case and put the last name first
sortString = sortString.toLowerCase();
int lastspace = sortString.lastIndexOf(' ');
if (lastspace != -1)
sortString = sortString.substring(lastspace+1) + ' ' +
sortString.substring(0, lastspace);
// Parse into surname and forename
lastspace = name.lastIndexOf(' ');
if (lastspace == -1) {
surname = name;
forename = null;
} else {
surname = name.substring(lastspace+1);
forename = name.substring(0, lastspace);
}
}
public String getListingString() {
if (forename == null) return surname;
else return surname+", "+forename;
}
public void body(ServletOutputStream out) throws IOException, NoGamesException {
String email = attributes.getProperty(":e");
if (email != null) {
out.print("Email: ");
hotlink(out, "mailto:"+email, email);
out.println("
");
}
String www = attributes.getProperty(":w");
if (www != null) {
out.print("WWW: ");
hotlink(out, www, www);
out.println("
");
}
super.body(out);
}
public void listing(ServletOutputStream out, Game games[])
throws IOException {
for (int i=0; i\n");
games[i].body(out);
}
}
public String getRefString() {
if (name.equals("Anonymous")) return null;
else return name;
}
public String getTag() {
return ":a";
}
public String getDescription() {
return "Adventure games by "+name;
}
}