Package net.pms.update

Source Code of net.pms.update.AutoUpdaterServerProperties

package net.pms.update;

import java.io.IOException;
import net.pms.util.PmsProperties;
import net.pms.util.Version;

/**
* Data provided by the server for us to update with.  Must be synchronized externally.
*
* @author Tim Cox (mail@tcox.org)
*/
public class AutoUpdaterServerProperties {
  private static final String KEY_LATEST_VERSION = "LatestVersion";
  private static final String DEFAULT_LATEST_VERSION = "0";
  private static final String KEY_DOWNLOAD_URL = "DownloadUrl";
  private static final String DEFAULT_DOWNLOAD_URL = "";
  private final PmsProperties properties = new PmsProperties();
  private final OperatingSystem operatingSystem = new OperatingSystem();

  public void loadFrom(byte[] data) throws IOException {
    properties.clear();
    properties.loadFromByteArray(data);
  }

  public boolean isStateValid() {
    return getDownloadUrl().length() > 0 && getLatestVersion().isGreaterThan(new Version("0"));
  }

  public Version getLatestVersion() {
    return new Version(getStringWithDefault(KEY_LATEST_VERSION, DEFAULT_LATEST_VERSION));
  }

  public String getDownloadUrl() {
    return getStringWithDefault(KEY_DOWNLOAD_URL, DEFAULT_DOWNLOAD_URL);
  }

  private String getStringWithDefault(String key, String defaultValue) {
    String platformSpecificKey = getPlatformSpecificKey(key);
    if (properties.containsKey(platformSpecificKey)) {
      return properties.get(platformSpecificKey);
    } else if (properties.containsKey(key)) {
      return properties.get(key);
    } else {
      return defaultValue;
    }
  }

  private String getPlatformSpecificKey(String key) {
    return key + "." + operatingSystem.getPlatformName();
  }
}
TOP

Related Classes of net.pms.update.AutoUpdaterServerProperties

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.