00001 package ;
00002
00003
00011
00012
00013 import config.*;
00014
00015
00016
00017
00018 import .SCT_Module;
00019 import .SCT_Module_Helper;
00020
00021
00022 class RodRModule_Impl implements RodRModule {
00023
00024
00025
00026 private config.Configuration p_db;
00027 private config.ConfigObject p_obj;
00028 private boolean p_was_read;
00029 private boolean p_is_valid;
00030 private String p_uid;
00031 private String p_class_name;
00032
00033
00034
00035
00036 private short m_position;
00037
00038
00039
00040
00041 private SCT_Module m_module;
00042
00043
00044
00045
00046
00047 public RodRModule_Impl() {
00048 p_is_valid = false;
00049 }
00050
00051 public RodRModule_Impl(config.Configuration db, config.ConfigObject obj) {
00052 init_config_params(db, obj);
00053 }
00054
00055 public void init_config_params(config.Configuration db, config.ConfigObject obj) {
00056 p_db = db;
00057 p_obj = obj;
00058 p_was_read = false;
00059 p_is_valid = true;
00060 p_uid = p_obj.UID();
00061 p_class_name = p_obj.class_name();
00062 }
00063
00064 public String UID() {
00065 return p_uid;
00066 }
00067
00068 public String class_name() {
00069 return p_class_name;
00070 }
00071
00072 public void update(boolean set_non_valid) {
00073 if(set_non_valid == true) {
00074 p_is_valid = false;
00075 }
00076 else {
00077 p_was_read = false;
00078 p_obj.clean();
00079 init();
00080 }
00081 }
00082
00083 public void unread() {
00084 p_was_read = false;
00085 }
00086
00087 public boolean is_valid() {
00088 return p_is_valid;
00089 }
00090
00091
00092
00093 private void init() throws config.NotFoundException, config.NotValidException, config.SystemException {
00094 if(p_was_read == true) {return;}
00095
00096 if(p_is_valid == false) {
00097 String text = "ERROR [.RodRModule_Impl.init()]: object " + p_uid + "@" + p_class_name + " is not valid";
00098 System.err.println(text);
00099 throw new config.NotValidException(text);
00100 }
00101
00102 m_position = p_obj.get_short("position");
00103
00104 m_module = SCT_Module_Helper.get(p_db, p_obj.get_object("module"));
00105
00106
00107 p_was_read = true;
00108
00109 }
00110
00111 public short get_position() {
00112 if(p_was_read == false) {init();}
00113 return m_position;
00114 }
00115
00116 public void set_position(short value) {
00117 p_obj.clean();
00118 p_obj.set_short("position", value);
00119 }
00120
00121 public SCT_Module get_module() {
00122 if(p_was_read == false) {init();}
00123 return m_module;
00124 }
00125
00126 public void set_module(SCT_Module value) {
00127 p_obj.clean();
00128 p_obj.set_object("module", value.config_object());
00129 }
00130
00131 public config.ConfigObject config_object() {
00132 return p_obj;
00133 }
00134
00135 public void print(String dx) {
00136 System.out.println(dx + "RodRModule object:" );
00137 System.out.println(dx + " id: \'" + UID() + "\', class name: \'" + class_name() + "\'");
00138
00139
00140
00141
00142 System.out.println(dx + " position: " + get_position());
00143
00144
00145
00146
00147 System.out.print(dx + " module : ");
00148 if(get_module() == null) {
00149 System.out.println("(null)");
00150 }
00151 else {
00152 System.out.println("\"" + get_module().UID() + "@" + get_module().class_name()+ "\"");
00153 }
00154 }
00155
00161 public void destroy(config.Configuration db) {
00162 db.destroy(config_object());
00163 }
00164 }