예제 #1
0
 @Override
 public <T> T getAsDictionary() {
   final Serializer dict = SerializerFactory.createSerializer();
   dict.setStringForKey(this.getProtocol().getIdentifier(), "Protocol");
   if (StringUtils.isNotBlank(this.getProtocol().getProvider())) {
     if (!StringUtils.equals(
         this.getProtocol().getProvider(), this.getProtocol().getIdentifier())) {
       dict.setStringForKey(this.getProtocol().getProvider(), "Provider");
     }
   }
   dict.setStringForKey(this.getNickname(), "Nickname");
   dict.setStringForKey(this.getUuid(), "UUID");
   dict.setStringForKey(this.getHostname(), "Hostname");
   dict.setStringForKey(String.valueOf(this.getPort()), "Port");
   if (StringUtils.isNotBlank(this.getCredentials().getUsername())) {
     dict.setStringForKey(this.getCredentials().getUsername(), "Username");
   }
   if (StringUtils.isNotBlank(this.getCdnCredentials().getUsername())) {
     dict.setStringForKey(this.getCdnCredentials().getUsername(), "CDN Credentials");
   }
   if (StringUtils.isNotBlank(this.getDefaultPath())) {
     dict.setStringForKey(this.getDefaultPath(), "Path");
   }
   if (StringUtils.isNotBlank(this.getWorkdir())) {
     dict.setStringForKey(this.getWorkdir(), "Workdir");
   }
   if (StringUtils.isNotBlank(this.getEncoding())) {
     dict.setStringForKey(this.getEncoding(), "Encoding");
   }
   if (null != this.getCredentials().getIdentity()) {
     dict.setStringForKey(
         this.getCredentials().getIdentity().getAbbreviatedPath(), "Private Key File");
   }
   if (this.getProtocol().isConnectModeConfigurable()) {
     if (null != this.getFTPConnectMode()) {
       if (this.getFTPConnectMode().equals(FTPConnectMode.PORT)) {
         dict.setStringForKey(FTPConnectMode.PORT.toString(), "FTP Connect Mode");
       } else if (this.getFTPConnectMode().equals(FTPConnectMode.PASV)) {
         dict.setStringForKey(FTPConnectMode.PASV.toString(), "FTP Connect Mode");
       }
     }
   }
   if (null != this.getMaxConnections()) {
     dict.setStringForKey(String.valueOf(this.getMaxConnections()), "Maximum Connections");
   }
   if (!this.isDefaultDownloadFolder()) {
     dict.setStringForKey(this.getDownloadFolder().getAbbreviatedPath(), "Download Folder");
   }
   if (null != this.getTimezone()) {
     dict.setStringForKey(this.getTimezone().getID(), "Timezone");
   }
   if (StringUtils.isNotBlank(this.getComment())) {
     dict.setStringForKey(this.getComment(), "Comment");
   }
   if (!this.isDefaultWebURL()) {
     dict.setStringForKey(this.getWebURL(), "Web URL");
   }
   if (null != this.getTimestamp()) {
     dict.setStringForKey(String.valueOf(this.getTimestamp().getTime()), "Access Timestamp");
   }
   return dict.getSerialized();
 }
예제 #2
0
 /** @param serialized A valid bookmark dictionary */
 public <T> Host(T serialized) {
   final Deserializer dict = DeserializerFactory.createDeserializer(serialized);
   Object uuidObj = dict.stringForKey("UUID");
   if (uuidObj != null) {
     this.setUuid(uuidObj.toString());
   }
   Object protocolObj = dict.stringForKey("Protocol");
   if (protocolObj != null) {
     this.setProtocol(ProtocolFactory.forName(protocolObj.toString()));
   }
   Object providerObj = dict.stringForKey("Provider");
   if (providerObj != null) {
     this.setProtocol(ProtocolFactory.forName(providerObj.toString()));
   }
   Object hostnameObj = dict.stringForKey("Hostname");
   if (hostnameObj != null) {
     this.setHostname(hostnameObj.toString());
   }
   Object usernameObj = dict.stringForKey("Username");
   if (usernameObj != null) {
     credentials.setUsername(usernameObj.toString());
   }
   Object passwordObj = dict.stringForKey("Password");
   if (passwordObj != null) {
     credentials.setPassword(passwordObj.toString());
   }
   Object cdnCredentialsObj = dict.stringForKey("CDN Credentials");
   if (cdnCredentialsObj != null) {
     cdnCredentials.setUsername(cdnCredentialsObj.toString());
   }
   Object keyObj = dict.stringForKey("Private Key File");
   if (keyObj != null) {
     this.getCredentials().setIdentity(LocalFactory.createLocal(keyObj.toString()));
   }
   Object portObj = dict.stringForKey("Port");
   if (portObj != null) {
     this.setPort(Integer.parseInt(portObj.toString()));
   }
   Object pathObj = dict.stringForKey("Path");
   if (pathObj != null) {
     this.setDefaultPath(pathObj.toString());
   }
   Object workdirObj = dict.stringForKey("Workdir");
   if (workdirObj != null) {
     this.setWorkdir(workdirObj.toString());
   }
   Object nicknameObj = dict.stringForKey("Nickname");
   if (nicknameObj != null) {
     this.setNickname(nicknameObj.toString());
   }
   Object encodingObj = dict.stringForKey("Encoding");
   if (encodingObj != null) {
     this.setEncoding(encodingObj.toString());
   }
   Object connectModeObj = dict.stringForKey("FTP Connect Mode");
   if (connectModeObj != null) {
     if (connectModeObj.toString().equals(FTPConnectMode.PORT.toString())) {
       this.setFTPConnectMode(FTPConnectMode.PORT);
     }
     if (connectModeObj.toString().equals(FTPConnectMode.PASV.toString())) {
       this.setFTPConnectMode(FTPConnectMode.PASV);
     }
   }
   Object connObj = dict.stringForKey("Maximum Connections");
   if (connObj != null) {
     this.setMaxConnections(Integer.valueOf(connObj.toString()));
   }
   Object downloadObj = dict.stringForKey("Download Folder");
   if (downloadObj != null) {
     this.setDownloadFolder(LocalFactory.createLocal(downloadObj.toString()));
   }
   Object timezoneObj = dict.stringForKey("Timezone");
   if (timezoneObj != null) {
     this.setTimezone(TimeZone.getTimeZone(timezoneObj.toString()));
   }
   Object commentObj = dict.stringForKey("Comment");
   if (commentObj != null) {
     this.setComment(commentObj.toString());
   }
   Object urlObj = dict.stringForKey("Web URL");
   if (urlObj != null) {
     this.setWebURL(urlObj.toString());
   }
   Object accessObj = dict.stringForKey("Access Timestamp");
   if (accessObj != null) {
     this.setTimestamp(new Date(Long.parseLong(accessObj.toString())));
   }
 }