package edu.washington.cs.oneswarm.ui.gwt.server;
import java.util.Date;
import org.bouncycastle.util.encoders.Base64;
import edu.washington.cs.oneswarm.f2f.Friend;
import edu.washington.cs.oneswarm.ui.gwt.rpc.FriendInfoLite;
public class FriendInfoLiteFactory {
public static FriendInfoLite createFriendInfo(Friend f) {
String publicKey = new String(Base64.encode(f.getPublicKey()));
int connectionId = f.getConnectionId();
int friendId = f.hashCode();
FriendInfoLite friendInfoLite = new FriendInfoLite(publicKey, connectionId, friendId,
f.getNick(), f.getSourceNetwork(), f.getStatus(), f.isBlocked(),
f.isCanSeeFileList(), f.isAllowChat(), f.isRequestFileList());
friendInfoLite.setDownloadedSession(f.getTotalDownloadSinceAppStart());
friendInfoLite.setDownloadedTotal(f.getTotalDownloaded());
friendInfoLite.setUploadedSession(f.getTotalUploadSinceAppStart());
friendInfoLite.setUploadedTotal(f.getTotalUploaded());
friendInfoLite.setConnectionLog(f.getConnectionLog());
if (f.getLastConnectIP() != null) {
friendInfoLite.setLastConnectIp(f.getLastConnectIP().getHostAddress());
}
friendInfoLite.setLastConnectPort(f.getLastConnectPort());
friendInfoLite.setLastConnectedDate(f.getLastConnectDate());
friendInfoLite.setSupportsChat(f.isSupportsChat());
friendInfoLite.setSupportsExtendedFileLists(f.isSupportsExtendedFileLists());
friendInfoLite.setDateAdded(f.getDateAdded());
friendInfoLite.setGroup(f.getGroup());
return friendInfoLite;
}
public static FriendInfoLite createFromKeyAndNick(String key, String nick, String sourceNetwork) {
FriendInfoLite converted = new FriendInfoLite();
converted.setPublicKey(key);
converted.setName(nick);
converted.setAllowChat(false);
converted.setCanSeeFileList(false);
converted.setSource(sourceNetwork);
converted.setDateAdded(new Date());
return converted;
}
}