/*
* Created on 06.12.2008
*
*/
package org.jdesktop.swingx.demos.search;
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;
public class Contributor implements Comparable<Contributor> {
private String firstName;
private String lastName;
@SuppressWarnings("unused")
private String userID;
private URI devnetMail;
private int merits;
private Date since;
public Contributor(String rawData) {
setData(rawData);
merits = createRandomMerits();
since = createRandomJoinedDate();
}
public int getMerits() {
return merits;
}
public Date getJoinedDate() {
return since;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public Object getID() {
return userID;
}
public URI getEmail() {
return devnetMail;
}
/**
* @param rawData
*/
private void setData(String rawData) {
if (rawData == null) {
lastName = " <unknown> ";
return;
}
StringTokenizer tokenizer = new StringTokenizer(rawData);
try {
firstName = tokenizer.nextToken();
lastName = tokenizer.nextToken();
userID = tokenizer.nextToken();
devnetMail = new URI("mailto:" + userID + "@dev.java.net");
} catch (Exception ex) {
// don't care ...
}
}
/**
* @return
*/
private Date createRandomJoinedDate() {
Calendar sinceBase = Calendar.getInstance();
sinceBase.add(Calendar.YEAR, -5);
long max = new Date().getTime() - sinceBase.getTimeInMillis();
Date entry = new Date(sinceBase.getTimeInMillis() + new Double(Math.random() * max).longValue());
return entry;
}
/**
* @return
*/
private int createRandomMerits() {
return new Double(Math.random() * 100).intValue();
}
@Override
public int compareTo(Contributor o) {
if (!(o instanceof Contributor)) return -1;
return lastName.compareTo(((Contributor) o).lastName);
}
}