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