package io.cattle.platform.api.settings.model;
import io.cattle.platform.archaius.util.ArchaiusUtil;
import io.cattle.platform.core.model.Setting;
import io.github.ibuildthecloud.gdapi.annotation.Field;
import io.github.ibuildthecloud.gdapi.annotation.Type;
@Type(update = true)
public class ActiveSetting {
String id;
String name;
String value;
Object activeValue;
boolean isInDb;
String source;
Setting setting;
public ActiveSetting() {
}
public ActiveSetting(String name, Object activeValue, String source) {
this.name = name;
this.activeValue = activeValue;
this.source = source;
}
public void setSetting(Setting setting) {
this.id = setting.getId().toString();
this.name = setting.getName();
this.value = setting.getValue();
this.isInDb = true;
this.setting = setting;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Field(update = true)
public String getValue() {
if (value == null && !isInDb && activeValue != null) {
return ArchaiusUtil.getString(name).get();
}
return value;
}
public void setValue(String value) {
this.value = value;
}
public boolean isInDb() {
return isInDb;
}
public void setInDb(boolean isInDb) {
this.isInDb = isInDb;
}
public Object getActiveValue() {
return activeValue;
}
public void setActiveValue(Object activeValue) {
this.activeValue = activeValue;
}
public String getId() {
return id == null ? name : id;
}
public void setId(String id) {
this.id = id;
}
@Field(include = false)
public Setting getSetting() {
return setting;
}
}