fitnesse.wiki.VersionInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fitnesse Show documentation
Show all versions of fitnesse Show documentation
The fully integrated standalone wiki, and acceptance testing framework.
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.wiki;
import java.util.Date;
import java.util.GregorianCalendar;
public class VersionInfo implements Comparable {
private String name;
private String author;
private Date creationTime;
public VersionInfo(String name, String author, Date creationTime) {
this.name = name;
this.author = author;
this.creationTime = new Date(creationTime.getTime());
}
public static VersionInfo makeVersionInfo(String author, Date creationTime) {
String versionName = WikiImportProperty.getTimeFormat().format(creationTime);
if (author != null && !"".equals(author)) {
versionName = author + "-" + versionName;
}
return new VersionInfo(versionName, author, creationTime);
}
public static VersionInfo makeVersionInfo(final PageData data) {
return makeVersionInfo(data.getAttribute(PageData.LAST_MODIFYING_USER),
data.getProperties().getLastModificationTime());
}
public String getAuthor() {
return author;
}
public Date getCreationTime() {
return new Date(creationTime.getTime());
}
public String getName() {
return name;
}
public String getAge() {
Date now = new GregorianCalendar().getTime();
return howLongAgoString(now, getCreationTime());
}
public static String howLongAgoString(Date now, Date then) {
long time = Math.abs(now.getTime() - then.getTime()) / 1000;
if (time < 60)
return pluralize(time, "second");
else if (time < 3600)
return pluralize(time / 60, "minute");
else if (time < 86400)
return pluralize(time / (3600), "hour");
else if (time < 31536000)
return pluralize(time / (86400), "day");
else
return pluralize(time / (31536000), "year");
}
private static String pluralize(long time, String unit) {
String age = time + " " + unit;
if (time > 1)
age = age + "s";
return age;
}
@Override
public int compareTo(VersionInfo otherVersion) {
return getCreationTime().compareTo(otherVersion.getCreationTime());
}
@Override
public String toString() {
return getName();
}
@Override
public boolean equals(Object o) {
if (o != null && o instanceof VersionInfo) {
VersionInfo otherVersion = (VersionInfo) o;
return getName().equals(otherVersion.getName());
} else
return false;
}
@Override
public int hashCode() {
return getName().hashCode();
}
}