All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arm.mbed.cloud.sdk.update.model.FirmwareManifest Maven / Gradle / Ivy

package com.arm.mbed.cloud.sdk.update.model;

import java.net.URL;
import java.util.Date;

import com.arm.mbed.cloud.sdk.annotations.DefaultValue;
import com.arm.mbed.cloud.sdk.annotations.Internal;
import com.arm.mbed.cloud.sdk.annotations.Preamble;
import com.arm.mbed.cloud.sdk.annotations.Required;
import com.arm.mbed.cloud.sdk.common.SdkModel;

@Preamble(description = "Firmware Manifest")
public class FirmwareManifest implements SdkModel {

    /**
     * Serialisation Id.
     */
    private static final long serialVersionUID = -1294421103104004701L;
    /**
     * The ID of the firmware manifest.
     */
    private String id;
    /**
     * The URL to the firmware manifest online.
     */
    private final URL url;
    /**
     * The URL to the decryption keys.
     */
    private final URL decryptionKeysUrl;
    /**
     * The class of device.
     */
    private final String deviceClass;
    /**
     * The time the object was created.
     */
    @DefaultValue(value = "now()")
    private final Date createdAt;
    /**
     * The time the object was updated.
     */
    @DefaultValue(value = "now()")
    private final Date updatedAt;
    /**
     * The version of the firmware manifest (as a timestamp).
     */
    @DefaultValue(value = "now()")
    private final Date timestamp;

    /**
     * The name of the object.
     */
    @Required
    private String name;
    /**
     * The description of the object.
     */
    private String description;
    /**
     * the size in bytes of the uploaded firmware manifest binary.
     */
    @DefaultValue(value = "0")
    private final long datafileSize;
    /**
     * The binary file of the manifest.
     */
    @Required
    private DataFile dataFile;
    /**
     * The file containing all decryption keys.
     */
    private DataFile decryptionKeysFile;

    /**
     * Internal constructor.
     * 

* Note: Should not be used. Use {@link #FirmwareManifest()} or {@link #FirmwareManifest(String, DataFile)} instead. * * @param id * id * @param url * URL * @param deviceClass * deviceClass * @param datafileSize * file size * @param createdAt * createdAt * @param updatedAt * updatedAt * @param timestamp * timestamp * @param keyTableUrl * url */ @Internal public FirmwareManifest(String id, URL url, String deviceClass, long datafileSize, Date createdAt, Date updatedAt, Date timestamp, URL keyTableUrl) { this(id, url, deviceClass, createdAt, updatedAt, timestamp, null, null, datafileSize, null, null, keyTableUrl); } /** * Internal constructor. *

* Note: Should not be used. Use {@link #FirmwareManifest()} or {@link #FirmwareManifest(String, DataFile)} instead. * * @param id * id * @param url * URL * @param deviceClass * deviceClass * @param createdAt * createdAt * @param updatedAt * updatedAt * @param timestamp * timestamp * @param name * name * @param description * description * @param datafileSize * file size * @param dataFile * file * @param keyTableFile * key table file * @param keyTableUrl * key table url */ @Internal public FirmwareManifest(String id, URL url, String deviceClass, Date createdAt, Date updatedAt, Date timestamp, String name, String description, long datafileSize, DataFile dataFile, DataFile keyTableFile, URL keyTableUrl) { super(); setId(id); this.url = url; this.deviceClass = deviceClass; this.createdAt = createdAt; this.updatedAt = updatedAt; this.timestamp = timestamp; this.datafileSize = datafileSize; this.decryptionKeysUrl = keyTableUrl; setName(name); setDescription(description); setDataFile(dataFile); setDecryptionKeysFile(keyTableFile); } /** * Constructor. */ public FirmwareManifest() { this(null, null, null, 0, new Date(), new Date(), new Date(), null); } /** * Constructor. * * @param name * manifest name * @param dataFile * manifest file */ public FirmwareManifest(String name, DataFile dataFile) { this(); setName(name); setDataFile(dataFile); } /** * Gets the id. * * @return the id */ @Override public String getId() { return id; } /** * Sets the id. * * @param id * the id to set */ public void setId(String id) { this.id = id; } /** * Gets the name. * * @return the name */ public String getName() { return name; } /** * Sets the name. * * @param name * the name to set */ @Required public void setName(String name) { this.name = name; } /** * Gets description. * * @return the description */ public String getDescription() { return description; } /** * Sets description. * * @param description * the description to set */ public void setDescription(String description) { this.description = description; } /** * Gets data file. * * @return the dataFile */ public DataFile getDataFile() { return dataFile; } /** * Sets data file. * * @param dataFile * the dataFile to set */ @Required public void setDataFile(DataFile dataFile) { this.dataFile = dataFile; } /** * Sets datafile from a path. * * @param datafile * the path to the datafile */ @Required public void setDatafile(String datafile) { setDataFile(new DataFile(datafile)); } /** * Gets file size. * * @return the datafileSize */ public long getDatafileSize() { return datafileSize; } /** * Gets the URL to the file online. * * @return the url */ public URL getUrl() { return url; } /** * Gets the device class. * * @return the deviceClass */ public String getDeviceClass() { return deviceClass; } /** * Gets creation date. * * @return the createdAt */ public Date getCreatedAt() { return createdAt; } /** * Gets last update date. * * @return the updatedAt */ public Date getUpdatedAt() { return updatedAt; } /** * Gets the version of the firmware manifest (as a timestamp). * * @return the timestamp */ public Date getTimestamp() { return timestamp; } /** * Gets the file describing decryption keys. * * @return the decryptionKeysFile */ public DataFile getDecryptionKeysFile() { return decryptionKeysFile; } /** * Gets the file describing decryption keys. *

* Note: Similar to {@link #getDecryptionKeysFile()} * * * @return the decryptionKeysFile */ @Internal public DataFile getKeyTableFile() { return getDecryptionKeysFile(); } /** * Sets the file containing decryption keys. * * @param decryptionKeysFile * the file to set */ public void setDecryptionKeysFile(DataFile decryptionKeysFile) { this.decryptionKeysFile = decryptionKeysFile; } /** * Sets the file containing decryption keys. *

* Note: Similar to {@link #setDecryptionKeysFile(DataFile)} * * @param decryptionKeysFile * the file to set */ public void setKeyTableFile(DataFile decryptionKeysFile) { setDecryptionKeysFile(decryptionKeysFile); } /** * Sets decryption keys from a path. * * @param keyTablePath * the path to the key table. */ @Required public void setDecryptionKeysFromPath(String keyTablePath) { setDecryptionKeysFile(new DataFile(keyTablePath)); } /** * Gets the URL to the decryption key table. * * @return the decryptionKeysUrl */ public URL getDecryptionKeysUrl() { return decryptionKeysUrl; } /** * Gets the URL to the decryption key table. *

* Note: Similar to {@link #getDecryptionKeysUrl()} * * @return the decryptionKeysUrl */ @Internal public URL getKeyTableUrl() { return getDecryptionKeysUrl(); } /** * Gets a clone. * * @return a clone * * @see java.lang.Object#clone() */ @Override public FirmwareManifest clone() { return new FirmwareManifest(id, decryptionKeysUrl, deviceClass, createdAt, updatedAt, timestamp, name, description, datafileSize, dataFile, decryptionKeysFile, decryptionKeysUrl); } /** * Determines whether all required fields have been set and therefore if the model instance is valid. * * @return true if instance is valid. False otherwise. */ @Override public boolean isValid() { return name != null && dataFile != null; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "FirmwareManifest [id=" + id + ", url=" + url + ", decryptionKeysUrl=" + decryptionKeysUrl + ", deviceClass=" + deviceClass + ", createdAt=" + createdAt + ", updatedAt=" + updatedAt + ", timestamp=" + timestamp + ", name=" + name + ", description=" + description + ", datafileSize=" + datafileSize + ", dataFile=" + dataFile + ", decryptionKeysFile=" + decryptionKeysFile + "]"; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy