/*
* Projet : Trustopics
* Version : 0.2.1
* Fichier : ConfigTopicsUpdates.java
*/
public class ConfigTopicsUpdates {
private static final String[] glb_topicKeys = {"state","category","value","message","answer","view","author","authorAnswer"};
public int GetMaxTopicDatas() { return(glb_topicKeys.length); }
private static final String glb_indexKey = "index";
public ConfigTopicsUpdates() {}
public void LoadTopicsDatas() {
try { new ConfigFile().Open(); }
catch (TrustException prm_ev) { prm_ev.Action(); }
}
public void SaveTopicsDatas() {
try { new ConfigFile().Save(); }
catch (TrustException prm_ev) { prm_ev.Action(); }
}
public int GetTotalTopic() {
ConfigFile lcl_configFile = new ConfigFile();
int lcl_cpt = 0;
while(true) {
if (lcl_configFile.GetValue(glb_indexKey+(lcl_cpt+1)) == null) break;
lcl_cpt++;
}
return(lcl_cpt);
}
public void ChangeTopicData(String[] prm_topicValues,int prm_keyIndice,String prm_value) {
String lcl_keyValue = prm_topicValues[1]+"."+prm_topicValues[2];
ConfigFile lcl_configFile = new ConfigFile();
lcl_configFile.SetValue(lcl_keyValue+"."+glb_topicKeys[prm_keyIndice],prm_value);
}
public String[] GetTopicDatas(int prm_index) {
ConfigFile lcl_configFile = new ConfigFile();
String lcl_keyValue = lcl_configFile.GetValue(glb_indexKey+prm_index);
String[] lcl_topicDatas = new String[GetMaxTopicDatas()];
for (int i = 0 ; i < GetMaxTopicDatas() ; i++)
lcl_topicDatas[i] = lcl_configFile.GetValue(lcl_keyValue+"."+glb_topicKeys[i]);
return(lcl_topicDatas);
}
public void AddTopicDatas(String[] prm_topicValues) {
String lcl_keyValue = prm_topicValues[1]+"."+prm_topicValues[2];
AddIndex(lcl_keyValue);
ConfigFile lcl_configFile = new ConfigFile();
for (int i = 0 ; i < GetMaxTopicDatas() ; i++)
lcl_configFile.SetValue(lcl_keyValue+"."+glb_topicKeys[i],prm_topicValues[i]);
}
public void DelTopicDatas(String[] prm_topicValues) {
String lcl_keyValue = prm_topicValues[1]+"."+prm_topicValues[2];
DelIndex(lcl_keyValue);
ConfigFile lcl_configFile = new ConfigFile();
for (int i = 0 ; i < GetMaxTopicDatas() ; i++)
lcl_configFile.DelValue(lcl_keyValue+"."+glb_topicKeys[i]);
}
private void AddIndex(String prm_keyValue) {
new ConfigFile().SetValue(glb_indexKey+(GetTotalTopic()+1),prm_keyValue);
}
private void DelIndex(String prm_keyValue) {
int lcl_totalTopic = GetTotalTopic();
String[] lcl_topicKeys = new String[lcl_totalTopic];
ConfigFile lcl_configFile = new ConfigFile();
for (int i = 0 ; i < lcl_totalTopic ; i++) {
lcl_topicKeys[i] = lcl_configFile.GetValue(glb_indexKey+(i+1));
lcl_configFile.DelValue(glb_indexKey+(i+1));
}
int lcl_cpt = 1;
for (int i = 0 ; i < lcl_totalTopic ; i++) {
if (!lcl_topicKeys[i].equals(prm_keyValue)) {
lcl_configFile.SetValue(glb_indexKey+lcl_cpt,lcl_topicKeys[i]);
lcl_cpt++;
}
}
}
}