00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "G4UIaliasList.hh"
00031 #include "G4ios.hh"
00032
00033 G4UIaliasList::G4UIaliasList()
00034 { }
00035
00036 G4UIaliasList::~G4UIaliasList()
00037 {
00038 G4int i;
00039 G4int n_treeEntry = alias.size();
00040 for( i=0; i < n_treeEntry; i++ )
00041 { delete alias[i];
00042 delete value[i]; }
00043 }
00044
00045 G4int G4UIaliasList::operator==(const G4UIaliasList &right) const
00046 {
00047 return ( this == &right );
00048 }
00049
00050 G4int G4UIaliasList::operator!=(const G4UIaliasList &right) const
00051 {
00052 return ( this != &right );
00053 }
00054
00055 void G4UIaliasList::AddNewAlias(const char* aliasName, const char* aliasValue)
00056 {
00057 if(FindAlias(aliasName))
00058 {
00059 G4cerr << "Alias <" << aliasName << "> already exist. Command ignored."
00060 << G4endl;
00061 return;
00062 }
00063 G4String* newAlias = new G4String(aliasName);
00064 alias.push_back(newAlias);
00065 G4String* newValue = new G4String(aliasValue);
00066 value.push_back(newValue);
00067 }
00068
00069 void G4UIaliasList::RemoveAlias(const char* aliasName)
00070 {
00071 G4int i = FindAliasID(aliasName);
00072 if(i<0)
00073 {
00074 G4cerr << "Alias <" << aliasName << "> does not exist. Command ignored."
00075 << G4endl;
00076 return;
00077 }
00078 alias.erase(alias.begin()+i);
00079 value.erase(value.begin()+i);
00080 }
00081
00082 void G4UIaliasList::ChangeAlias(const char* aliasName, const char* aliasValue)
00083 {
00084 G4int i = FindAliasID(aliasName);
00085 if(i<0)
00086 {
00087 AddNewAlias(aliasName,aliasValue);
00088 return;
00089 }
00090 *(value[i]) = aliasValue;
00091 }
00092
00093 G4String* G4UIaliasList::FindAlias(const char* aliasName)
00094 {
00095 G4int i = FindAliasID(aliasName);
00096 if(i<0)
00097 { return 0; }
00098 return value[i];
00099 }
00100
00101 G4int G4UIaliasList::FindAliasID(const char* aliasName)
00102 {
00103 G4int i_entry = alias.size();
00104 for(G4int i=0;i<i_entry;i++)
00105 { if(*(alias[i])==aliasName) return i; }
00106 return -1;
00107 }
00108
00109 void G4UIaliasList::List()
00110 {
00111 G4int i_entry = alias.size();
00112 for(G4int i1=0;i1<i_entry-1;i1++)
00113 for(G4int i2=i1+1;i2<i_entry;i2++)
00114 {
00115 if(*(alias[i1])>*(alias[i2]))
00116 {
00117 G4String* tmp = alias[i1];
00118 alias[i1] = alias[i2];
00119 alias[i2] = tmp;
00120 tmp = value[i1];
00121 value[i1] = value[i2];
00122 value[i2] = tmp;
00123 }
00124 }
00125
00126 for(G4int i=0;i<i_entry;i++)
00127 { G4cout << " " << *(alias[i]) << " : " << *(value[i]) << G4endl; }
00128 }
00129