Warning: session_start(): open(/var/lib/php/sessions/sess_dpu84528i9fg6tobp1iid4m0av, 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;
Map _persistenceInfo;
transient O _host;
transient Map timers = newWeakHashMap(); // all kinds of resources actually; value is closer helper
transient Set _resources = synchroHashSet();
transient Lock lock; // set by stem
transient bool persistOnChangedField = true;
transient int changeCount;
transient O changeCountSync = new O;
transient L onChange;
transient bool verboseTimers;
transient ReliableSingleThread rstUpdate;
transient Set componentFieldsToKeep;
transient Map transientGeneralMap = synchroHashMap();
transient Q q; // module command queue
*() {
dm_initErrorHandling();
setMainDesktopPane((JDesktopPane) getCreatorOpt('desktop));
}
bool isVisible() { ret isTrue(getOpt(_host, 'visible)); }
S moduleName() { ret name; }
void setModuleName(S name) {
S oldName = this.name;
if (!eq(name, oldName)) {
this.name = name;
possiblyInternalFrameTitle(vis(), name);
vmBus_send('moduleNameChange, this, oldName, name);
}
}
void setModuleToolTip(S toolTip) {
this.toolTip = toolTip;
}
JComponent vis() {
ret (JComponent) getOpt(_host, 'vis);
}
A ownResource(A a) {
if (a != null)
_resources.add(a);
ret a;
}
A ownTimer(A timer) {
if (timer instanceof AutoCloseable) ownResource((AutoCloseable) timer);
ownTimer(timer, f cancelTimerOrInterruptThread);
ret timer;
}
void ownTimer(O timer, O closerHelper) {
timers.put(timer, closerHelper);
}
void singleTimer(java.util.Timer timer) {
stopAllTimers();
ownTimer(timer);
}
void stopAllTimers() {
for (AutoCloseable resource : getAndClearList(_resources)) {
if (verboseTimers)
print("Releasing resource: " + resource);
pcall { resource.close(); }
}
for (O timer, closerHelper : getAndClearMap(timers)) {
if (verboseTimers)
print("Stopping timer: " + closerHelper + " / " + timer);
pcallF(closerHelper, timer);
}
}
void cleanMeUp_dynModule {
stopAllTimers();
}
void persistMe {
synchronized(changeCountSync) { ++changeCount; }
pcallFAll(onChange); callOpt(_host, '_change);
updateMe();
}
void _change { persistMe(); }
void change { persistMe(); }
void updateMe {
lock lock;
update();
}
void changeAndUpdate { _change(); updateMe(); }
bool setField(S name, O value) {
lock lock;
pcall { // some really weird classes fail on equals() (BCEL JavaClass, I'm looking at you)
if (eq(get(this, name), value)) false;
}
set(this, name, value);
if (persistOnChangedField && !isFalse(mapGet(_persistenceInfo, name)))
_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, new WeakReference(this));
}
AutoCloseable enterAndLock() {
ret combineAutoCloseables(enter(), tempLock(lock));
}
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() {}
void unvisualize() {
zeroAllFieldsOfTypeExcept(this, Component, componentFieldsToKeep);
}
L menuItems() {
null;
}
void enhanceFrame(Container f) {
ifndef NoMenuItems
internalFramePopupMenuFromActions_threaded(f, menuItems());
endifndef
ifndef NoSwitchableFields
S switchableFields = callOpt(this, 'switchableFields);
for (S field : splitAtSpace(switchableFields)) {
Class type = fieldType(this, field);
if (eq(bool.class, type))
dm_boolFieldMenuItem(f, field);
else if (eq(int.class, type))
dm_intFieldMenuItem(f, field);
else if (eq(double.class, type))
dm_doubleFieldMenuItem(f, field);
}
endifndef
}
// assume this is called in start(), so no locking
ReliableSingleThread rstUpdate() {
if (rstUpdate == null) rstUpdate = dm_rst(this, r updateMe);
ret rstUpdate;
}
Q q() enter {
if (q == null) {
lock lock;
if (q == null) q = dm_startQ();
}
ret q;
}
A withUpdate(A a) {
rstUpdate().trigger();
ret a;
}
DynModule module() { this; }
}
static void _registerTimer(java.util.Timer timer) {
_registerTimer_original(timer);
dm_currentModule().ownTimer(timer);
}