Warning: session_start(): open(/var/lib/php/sessions/sess_lstcl7o7830pit1hk37n0fiedg, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
please include function myInnerClasses.
static abstract class DynModule {
S name, toolTip;
PersistableThrowable error;
Map> mechLists;
transient O _host;
transient Set timers;
transient Lock lock = lock();
transient bool persistOnChangedField = true;
transient int changeCount;
transient L onChange;
*() {
dm_initErrorHandling();
}
bool isVisible() { ret isTrue(getOpt(_host, 'visible)); }
S moduleName() { ret name; }
void setModuleName(S name) {
this.name = name;
setInternalFrameTitle(vis(), name);
}
void setModuleToolTip(S toolTip) {
this.toolTip = toolTip;
}
JComponent vis() {
ret (JComponent) getOpt(_host, 'vis);
}
void ownTimer(java.util.Timer timer) {
temp enter();
if (timers == null) timers = newWeakIdentityHashSet();
addIfNotThere(timers, timer);
}
void stopAllTimers() {
cancelTimers(getAndClearList(timers));
}
void cleanMeUp_dynModule {
stopAllTimers();
}
void persistMe {
{ lock lock; ++changeCount; }
pcallFAll(onChange); callOpt(_host, 'change);
}
void _change { persistMe(); }
void updateMe {
lock lock;
update();
}
bool setField(S name, O value) {
lock lock;
if (eq(get(this, name), value)) false;
set(this, name, value);
if (persistOnChangedField) _change();
true;
}
A setFieldAndReturn(S name, A value) {
setField(name, value);
ret value;
}
bool setFields(O... params) {
bool change = false;
for (int i = 0; i < l(params); i += 2)
if (setField((S) params[i], params[i+1])) change = true;
ret change;
}
void start {}
void revisualize {
call(creator(), 'revisualizeModule, _host);
}
AutoCloseable enter() {
please include function dm_currentModule.
ret tempSetThreadLocal(dm_currentModule_value, this);
}
bool setError(Throwable e) {
setField(error := persistableThrowable(e));
true;
}
void clearError {
setField(error := null);
}
void onChange(Runnable r) {
lock lock;
if (onChange == null) onChange = synchroList();
addIfNotThere(onChange, r);
}
void update() {}
}