package org.commcare.android.database.global.models;
import org.commcare.android.storage.framework.Persisted;
import org.commcare.models.framework.Persisting;
import org.javarosa.core.util.externalizable.DeserializationException;
import org.javarosa.core.util.externalizable.ExtUtil;
import org.javarosa.core.util.externalizable.PrototypeFactory;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
* Represents an app that exists on CommCare HQ (either india or prod) and is accessible for
* the currently-authenticated user (either mobile or web) to install.
*
* Created by amstone326 on 2/3/17.
*/
public class AppAvailableToInstall extends Persisted {
public static final String STORAGE_KEY = "available_apps";
@Persisting(1)
private String domain;
@Persisting(2)
private String appName;
@Persisting(3)
private String profileRef;
@Persisting(4)
private String mediaProfileRef;
public AppAvailableToInstall() {
// for serialization only
}
public AppAvailableToInstall(String domain, String appName, String profileRef, String mediaProfileRef) {
this.domain = domain;
this.appName = appName;
this.profileRef = profileRef;
this.mediaProfileRef = mediaProfileRef;
}
public String getAppName() {
return appName;
}
public String getMediaProfileRef() {
return mediaProfileRef;
}
public String getDomainName() {
return domain;
}
@Override
public void readExternal(DataInputStream in, PrototypeFactory pf) throws IOException, DeserializationException {
domain = ExtUtil.readString(in);
appName = ExtUtil.readString(in);
profileRef = ExtUtil.readString(in);
mediaProfileRef = ExtUtil.readString(in);
}
@Override
public void writeExternal(DataOutputStream out) throws IOException {
ExtUtil.writeString(out, domain);
ExtUtil.writeString(out, appName);
ExtUtil.writeString(out, profileRef);
ExtUtil.writeString(out, mediaProfileRef);
}
}