Aegis/app/src/main/java/me/impy/aegis/db/DatabaseEntry.java

69 lines
1.6 KiB
Java
Raw Normal View History

package me.impy.aegis.db;
import org.json.JSONException;
import org.json.JSONObject;
2017-08-26 21:15:53 +02:00
import java.io.Serializable;
import java.util.UUID;
2017-08-26 21:15:53 +02:00
import me.impy.aegis.crypto.KeyInfo;
import me.impy.aegis.crypto.KeyInfoException;
2017-08-26 21:15:53 +02:00
public class DatabaseEntry implements Serializable {
private UUID _uuid;
2017-12-27 21:01:53 +01:00
private String _name = "";
private String _icon = "";
private KeyInfo _info;
2017-08-26 21:15:53 +02:00
public DatabaseEntry() {
this(new KeyInfo());
}
2017-08-26 21:15:53 +02:00
public DatabaseEntry(KeyInfo info) {
_info = info;
_uuid = UUID.randomUUID();
2017-08-26 21:15:53 +02:00
}
public JSONObject serialize() throws JSONException {
JSONObject obj = new JSONObject();
obj.put("uuid", _uuid.toString());
2017-08-26 21:15:53 +02:00
obj.put("name", _name);
obj.put("url", _info.getURL());
return obj;
}
public void deserialize(JSONObject obj) throws JSONException, KeyInfoException {
// if there is no uuid, generate a new one
if (!obj.has("uuid")) {
_uuid = UUID.randomUUID();
} else {
_uuid = UUID.fromString(obj.getString("uuid"));
}
2017-08-26 21:15:53 +02:00
_name = obj.getString("name");
_info = KeyInfo.fromURL(obj.getString("url"));
}
public UUID getUUID() {
return _uuid;
2017-12-27 21:01:53 +01:00
}
2017-08-26 21:15:53 +02:00
public String getName() {
return _name;
}
public String getIcon() {
return _icon;
}
public KeyInfo getInfo() {
return _info;
}
public void setName(String name) {
_name = name;
}
public void setIcon(String icon) {
_icon = icon;
}
public void setInfo(KeyInfo info) {
_info = info;
}
}