package com.intellij.flex.model.bc.impl;
import com.intellij.flex.model.bc.JpsAirSigningOptions;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.xmlb.annotations.Attribute;
import com.intellij.util.xmlb.annotations.Tag;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.model.JpsElementCreator;
import org.jetbrains.jps.model.ex.JpsElementBase;
import org.jetbrains.jps.model.ex.JpsElementChildRoleBase;
public class JpsAirSigningOptionsImpl extends JpsElementBase<JpsAirSigningOptionsImpl> implements JpsAirSigningOptions {
static final JpsAirSigningOptionsRole ROLE = new JpsAirSigningOptionsRole();
private boolean myUseTempCertificate = true;
private @NotNull String myProvisioningProfilePath = "";
private @NotNull String myKeystorePath = "";
private @NotNull String myKeystoreType = "PKCS12";
private @NotNull String myKeyAlias = "";
private @NotNull String myProvider = "";
private @NotNull String myTsa = "";
private JpsAirSigningOptionsImpl() {
}
private JpsAirSigningOptionsImpl(JpsAirSigningOptionsImpl original) {
myUseTempCertificate = original.myUseTempCertificate;
myProvisioningProfilePath = original.myProvisioningProfilePath;
myKeystorePath = original.myKeystorePath;
myKeystoreType = original.myKeystoreType;
myKeyAlias = original.myKeyAlias;
myProvider = original.myProvider;
myTsa = original.myTsa;
}
@NotNull
public JpsAirSigningOptionsImpl createCopy() {
return new JpsAirSigningOptionsImpl(this);
}
public void applyChanges(@NotNull final JpsAirSigningOptionsImpl modified) {
setUseTempCertificate(modified.isUseTempCertificate());
setProvisioningProfilePath(modified.getProvisioningProfilePath());
setKeystorePath(modified.getKeystorePath());
setKeystoreType(modified.getKeystoreType());
setKeyAlias(modified.getKeyAlias());
setProvider(modified.getProvider());
setTsa(modified.getTsa());
}
// -----------------------------
public boolean isUseTempCertificate() {
return myUseTempCertificate;
}
public void setUseTempCertificate(final boolean useTempCertificate) {
myUseTempCertificate = useTempCertificate;
}
@NotNull
public String getProvisioningProfilePath() {
return myProvisioningProfilePath;
}
public void setProvisioningProfilePath(final @NotNull String provisioningProfilePath) {
myProvisioningProfilePath = FileUtil.toSystemIndependentName(provisioningProfilePath);
}
@NotNull
public String getKeystorePath() {
return myKeystorePath;
}
public void setKeystorePath(final @NotNull String keystorePath) {
myKeystorePath = FileUtil.toSystemIndependentName(keystorePath);
}
@NotNull
public String getKeystoreType() {
return myKeystoreType;
}
public void setKeystoreType(final @NotNull String keystoreType) {
myKeystoreType = keystoreType;
}
@NotNull
public String getKeyAlias() {
return myKeyAlias;
}
public void setKeyAlias(final @NotNull String keyAlias) {
myKeyAlias = keyAlias;
}
@NotNull
public String getProvider() {
return myProvider;
}
public void setProvider(final @NotNull String provider) {
myProvider = provider;
}
@NotNull
public String getTsa() {
return myTsa;
}
public void setTsa(final @NotNull String tsa) {
myTsa = tsa;
}
// -----------------------------
State getState() {
final State state = new State();
state.USE_TEMP_CERTIFICATE = myUseTempCertificate;
state.PROVISIONING_PROFILE_PATH = myProvisioningProfilePath;
state.KEYSTORE_PATH = myKeystorePath;
state.KEYSTORE_TYPE = myKeystoreType;
state.KEY_ALIAS = myKeyAlias;
state.PROVIDER = myProvider;
state.TSA = myTsa;
return state;
}
void loadState(final State state) {
myUseTempCertificate = state.USE_TEMP_CERTIFICATE;
myProvisioningProfilePath = state.PROVISIONING_PROFILE_PATH;
myKeystorePath = state.KEYSTORE_PATH;
myKeystoreType = state.KEYSTORE_TYPE;
myKeyAlias = state.KEY_ALIAS;
myProvider = state.PROVIDER;
myTsa = state.TSA;
}
private static class JpsAirSigningOptionsRole extends JpsElementChildRoleBase<JpsAirSigningOptions>
implements JpsElementCreator<JpsAirSigningOptions> {
protected JpsAirSigningOptionsRole() {
super("air signing options");
}
@NotNull
public JpsAirSigningOptions create() {
return new JpsAirSigningOptionsImpl();
}
}
@Tag("AirSigningOptions")
public static class State {
@Attribute("use-temp-certificate")
public boolean USE_TEMP_CERTIFICATE = true;
@Attribute("provisioning-profile-path")
public String PROVISIONING_PROFILE_PATH = "";
@Attribute("keystore-path")
public String KEYSTORE_PATH = "";
@Attribute("keystore-type")
public String KEYSTORE_TYPE = "";
@Attribute("key-alias")
public String KEY_ALIAS = "";
@Attribute("provider")
public String PROVIDER = "";
@Attribute("tsa")
public String TSA = "";
}
}