00001 package ;
00002
00003
00011
00012
00013 import config.*;
00014
00015
00016
00017
00018 import .Channel;
00019 import .Channel_Helper;
00020 import .RodModule;
00021 import .RodModule_Helper;
00022 import .RodRModule;
00023 import .RodRModule_Helper;
00024
00025
00026 class RodMUR_Impl implements RodMUR {
00027
00028
00029
00030 private config.Configuration p_db;
00031 private config.ConfigObject p_obj;
00032 private boolean p_was_read;
00033 private boolean p_is_valid;
00034 private String p_uid;
00035 private String p_class_name;
00036
00037
00038
00039
00040 private short m_order;
00041 private short m_id;
00042
00043
00044
00045
00046 private Channel[] m_channels;
00047 private RodModule[] m_rodModules;
00048 private RodRModule[] m_rodRModules;
00049
00050
00051
00052
00053
00054 public RodMUR_Impl() {
00055 p_is_valid = false;
00056 }
00057
00058 public RodMUR_Impl(config.Configuration db, config.ConfigObject obj) {
00059 init_config_params(db, obj);
00060 }
00061
00062 public void init_config_params(config.Configuration db, config.ConfigObject obj) {
00063 p_db = db;
00064 p_obj = obj;
00065 p_was_read = false;
00066 p_is_valid = true;
00067 p_uid = p_obj.UID();
00068 p_class_name = p_obj.class_name();
00069 }
00070
00071 public String UID() {
00072 return p_uid;
00073 }
00074
00075 public String class_name() {
00076 return p_class_name;
00077 }
00078
00079 public void update(boolean set_non_valid) {
00080 if(set_non_valid == true) {
00081 p_is_valid = false;
00082 }
00083 else {
00084 p_was_read = false;
00085 p_obj.clean();
00086 init();
00087 }
00088 }
00089
00090 public void unread() {
00091 p_was_read = false;
00092 }
00093
00094 public boolean is_valid() {
00095 return p_is_valid;
00096 }
00097
00098
00099
00100 private void init() throws config.NotFoundException, config.NotValidException, config.SystemException {
00101 if(p_was_read == true) {return;}
00102
00103 if(p_is_valid == false) {
00104 String text = "ERROR [.RodMUR_Impl.init()]: object " + p_uid + "@" + p_class_name + " is not valid";
00105 System.err.println(text);
00106 throw new config.NotValidException(text);
00107 }
00108
00109 m_order = p_obj.get_short("order");
00110
00111 m_id = p_obj.get_short("id");
00112
00113 {
00114 ConfigObject[] objs = p_obj.get_objects("channels");
00115 m_channels = new Channel[objs.length];
00116 for( int i = 0; i < objs.length; i++ ) {
00117 m_channels[i] = Channel_Helper.get(p_db, objs[i]);
00118 }
00119 }
00120
00121 {
00122 ConfigObject[] objs = p_obj.get_objects("rodModules");
00123 m_rodModules = new RodModule[objs.length];
00124 for( int i = 0; i < objs.length; i++ ) {
00125 m_rodModules[i] = RodModule_Helper.get(p_db, objs[i]);
00126 }
00127 }
00128
00129 {
00130 ConfigObject[] objs = p_obj.get_objects("rodRModules");
00131 m_rodRModules = new RodRModule[objs.length];
00132 for( int i = 0; i < objs.length; i++ ) {
00133 m_rodRModules[i] = RodRModule_Helper.get(p_db, objs[i]);
00134 }
00135 }
00136
00137
00138 p_was_read = true;
00139
00140 }
00141
00142 public short get_order() {
00143 if(p_was_read == false) {init();}
00144 return m_order;
00145 }
00146
00147 public void set_order(short value) {
00148 p_obj.clean();
00149 p_obj.set_short("order", value);
00150 }
00151
00152 public short get_id() {
00153 if(p_was_read == false) {init();}
00154 return m_id;
00155 }
00156
00157 public void set_id(short value) {
00158 p_obj.clean();
00159 p_obj.set_short("id", value);
00160 }
00161
00162 public Channel[] get_channels() {
00163 if(p_was_read == false) {init();}
00164 return m_channels;
00165 }
00166
00167 public void set_channels(Channel[] value) {
00168 p_obj.clean();
00169 config.ConfigObject[] objs = new config.ConfigObject[value.length];
00170 for(int i = 0; i < value.length; i++) {
00171 objs[i] = value[i].config_object();
00172 }
00173 p_obj.set_objects("channels", objs);
00174 }
00175
00176 public RodModule[] get_rodModules() {
00177 if(p_was_read == false) {init();}
00178 return m_rodModules;
00179 }
00180
00181 public void set_rodModules(RodModule[] value) {
00182 p_obj.clean();
00183 config.ConfigObject[] objs = new config.ConfigObject[value.length];
00184 for(int i = 0; i < value.length; i++) {
00185 objs[i] = value[i].config_object();
00186 }
00187 p_obj.set_objects("rodModules", objs);
00188 }
00189
00190 public RodRModule[] get_rodRModules() {
00191 if(p_was_read == false) {init();}
00192 return m_rodRModules;
00193 }
00194
00195 public void set_rodRModules(RodRModule[] value) {
00196 p_obj.clean();
00197 config.ConfigObject[] objs = new config.ConfigObject[value.length];
00198 for(int i = 0; i < value.length; i++) {
00199 objs[i] = value[i].config_object();
00200 }
00201 p_obj.set_objects("rodRModules", objs);
00202 }
00203
00204 public config.ConfigObject config_object() {
00205 return p_obj;
00206 }
00207
00208 public void print(String dx) {
00209 System.out.println(dx + "RodMUR object:" );
00210 System.out.println(dx + " id: \'" + UID() + "\', class name: \'" + class_name() + "\'");
00211
00212
00213
00214
00215 System.out.println(dx + " order: " + get_order());
00216 System.out.println(dx + " id: " + get_id());
00217
00218
00219
00220
00221 if(get_channels().length > 0) {
00222 System.out.print(dx + " " + get_channels().length + " object(s) in channels :\n");
00223
00224 for(int i = 0; i < get_channels().length; i++) {
00225 get_channels()[i].print(dx.concat(" "));
00226 }
00227 }
00228 else {
00229 System.out.println(dx + " channels value is empty");
00230 }
00231
00232 if(get_rodModules().length > 0) {
00233 System.out.print(dx + " " + get_rodModules().length + " object(s) in rodModules :\n");
00234
00235 for(int i = 0; i < get_rodModules().length; i++) {
00236 get_rodModules()[i].print(dx.concat(" "));
00237 }
00238 }
00239 else {
00240 System.out.println(dx + " rodModules value is empty");
00241 }
00242
00243 if(get_rodRModules().length > 0) {
00244 System.out.print(dx + " " + get_rodRModules().length + " object(s) in rodRModules :\n");
00245
00246 for(int i = 0; i < get_rodRModules().length; i++) {
00247 get_rodRModules()[i].print(dx.concat(" "));
00248 }
00249 }
00250 else {
00251 System.out.println(dx + " rodRModules value is empty");
00252 }
00253
00254 }
00255
00261 public void destroy(config.Configuration db) {
00262 db.destroy(config_object());
00263 }
00264 }