updated templates

master
Theunis J. Botha 2021-06-28 10:25:11 +02:00
parent c2d0155b44
commit 1fbed0ecd0
8 changed files with 261 additions and 504 deletions

View File

@ -1,28 +1,37 @@
const Event = require('r3-event');
const Utils = require('r3-utils');
const Event = require('./r3-event');
const Utils = require('./r3-utils');
const R3Object = require('r3-r3-object.js');
/**
OPTIONS_START
runtime='default'
OPTIONS_END
GENERATE_INHERITED_START
GENERATE_INHERITED_END
INSTANCE_OPTIONS_MAPPING_START
INSTANCE_OPTIONS_MAPPING_END
Of the form x=<value>
CUSTOM_OPTIONS_START
CUSTOM_OPTIONS_END
LINKED_OBJECTS_START
LINKED_OBJECTS_END
Of the form x=<instance.property>
CUSTOM_INSTANCE_OPTIONS_MAPPING_START
CUSTOM_INSTANCE_OPTIONS_MAPPING_END
EXCLUDED_FROM_INSTANCE_OPTIONS_START
runtime
EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_LINKED_OBJECTS_START
CUSTOM_LINKED_OBJECTS_END
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_START
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_METHODS_START
CUSTOM_METHODS_END
CUSTOM_STATIC_METHODS_START
CUSTOM_STATIC_METHODS_END
**/
class Component extends R3Object {
//CONSTRUCTOR_EXTENDS_TEMPLATE_START
//GENERATE_CONSTRUCTOR_EXTENDS_START
constructor(options) {
if (Utils.UndefinedOrNull(options)) {
@ -33,14 +42,8 @@ class Component extends R3Object {
this.emit(Event.OBJECT_CREATED, this);
//OPTIONS_INIT_START
if (typeof options === 'undefined') {
options = {};
}
if (Utils.UndefinedOrNull(options.runtime)) {
options.runtime = 'default';
}
//OPTIONS_INIT_END
//GENERATE_OPTIONS_INIT_START
//GENERATE_OPTIONS_INIT_END
//CUSTOM_OPTIONS_INIT_START
//CUSTOM_OPTIONS_INIT_END
@ -52,78 +55,80 @@ class Component extends R3Object {
//CUSTOM_BEFORE_INIT_END
this.emit(Event.OBJECT_INITIALIZED, this);
}
//CONSTRUCTOR_EXTENDS_TEMPLATE_END
//CREATE_INSTANCE_TEMPLATE_START
//CUSTOM_AFTER_INIT_START
//CUSTOM_AFTER_INIT_END
}
//GENERATE_CONSTRUCTOR_EXTENDS_END
//GENERATE_CREATE_INSTANCE_START
createInstance() {
//CREATE_INSTANCE_BEFORE_START
//GENERATE_CREATE_INSTANCE_BEFORE_START
this.emit(Event.CREATE_INSTANCE_BEFORE, this);
//CREATE_INSTANCE_BEFORE_END
//GENERATE_CREATE_INSTANCE_BEFORE_END
//CUSTOM_CREATE_INSTANCE_START
//CUSTOM_CREATE_INSTANCE_END
//CREATE_INSTANCE_AFTER_START
//GENERATE_CREATE_INSTANCE_AFTER_START
this[this.runtime].createInstance(
this,
{
//CREATE_INSTANCE_OPTIONS_START
//CREATE_INSTANCE_OPTIONS_END
//GENERATE_CREATE_INSTANCE_OPTIONS_START
//GENERATE_CREATE_INSTANCE_OPTIONS_END
}
)
this.emit(Event.INSTANCE_CREATED, this);
//CREATE_INSTANCE_AFTER_END
//GENERATE_CREATE_INSTANCE_AFTER_END
}
//CREATE_INSTANCE_TEMPLATE_END
//GENERATE_CREATE_INSTANCE_END
//UPDATE_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_INSTANCE_START
updateInstance(property) {
//UPDATE_INSTANCE_BEFORE_START
//GENERATE_UPDATE_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_INSTANCE_BEFORE, this);
//UPDATE_INSTANCE_BEFORE_END
//GENERATE_UPDATE_INSTANCE_BEFORE_END
//UPDATE_INSTANCE_OPTIONS_START
//UPDATE_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_INSTANCE_START
//CUSTOM_UPDATE_INSTANCE_END
//UPDATE_INSTANCE_AFTER_START
//GENERATE_UPDATE_INSTANCE_AFTER_START
this.emit(Event.UPDATE_INSTANCE_AFTER, this);
//UPDATE_INSTANCE_AFTER_END
//GENERATE_UPDATE_INSTANCE_AFTER_END
}
//UPDATE_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_INSTANCE_END
//UPDATE_FROM_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_FROM_INSTANCE_START
updateFromInstance(property) {
//UPDATE_FROM_INSTANCE_BEFORE_START
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_FROM_INSTANCE_BEFORE, this);
//UPDATE_FROM_INSTANCE_BEFORE_END
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_END
//UPDATE_FROM_INSTANCE_OPTIONS_START
//UPDATE_FROM_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_FROM_INSTANCE_START
//CUSTOM_UPDATE_FROM_INSTANCE_END
//UPDATE_FROM_INSTANCE_AFTER_START
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_START
this.emit(Event.UPDATE_FROM_INSTANCE_AFTER, this);
//UPDATE_FROM_INSTANCE_AFTER_END
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_END
}
//UPDATE_FROM_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_FROM_INSTANCE_END
//DISPOSE_TEMPLATE_START
//GENERATE_DISPOSE_START
dispose() {
//DISPOSE_BEFORE_START
//GENERATE_DISPOSE_BEFORE_START
this.subscribe(
Event.INSTANCE_DISPOSED,
function(object) {
@ -132,38 +137,43 @@ class Component extends R3Object {
}
}
);
//DISPOSE_BEFORE_END
//GENERATE_DISPOSE_BEFORE_END
//CUSTOM_DISPOSE_START
//CUSTOM_DISPOSE_END
//DISPOSE_AFTER_START
//GENERATE_DISPOSE_AFTER_START
this.disposeInstance();
//DISPOSE_AFTER_END
//GENERATE_DISPOSE_AFTER_END
}
//DISPOSE_TEMPLATE_END
//GENERATE_DISPOSE_END
//DISPOSE_INSTANCE_TEMPLATE_START
//GENERATE_DISPOSE_INSTANCE_START
disposeInstance() {
//DISPOSE_INSTANCE_BEFORE_START
//GENERATE_DISPOSE_INSTANCE_BEFORE_START
console.log('Disposing instance of ' + this.name);
//DISPOSE_INSTANCE_BEFORE_END
//GENERATE_DISPOSE_INSTANCE_BEFORE_END
//CUSTOM_DISPOSE_INSTANCE_START
//CUSTOM_DISPOSE_INSTANCE_END
//DISPOSE_INSTANCE_AFTER_START
//GENERATE_DISPOSE_INSTANCE_AFTER_START
this.emit(Event.DISPOSE_INSTANCE, this);
//DISPOSE_INSTANCE_AFTER_END
//GENERATE_DISPOSE_INSTANCE_AFTER_END
}
//DISPOSE_INSTANCE_TEMPLATE_END
//GENERATE_DISPOSE_INSTANCE_END
//GENERATE_METHODS_START
//GENERATE_METHODS_END
//GENERATE_STATIC_METHODS_START
//GENERATE_STATIC_METHODS_END
//CUSTOM_IMPLEMENTATION_START
//CUSTOM_IMPLEMENTATION_END
}
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_START

View File

@ -1,24 +1,27 @@
const Utils = require('r3-utils');
const Utils = require('./r3-utils');
/**
OPTIONS_START
OPTIONS_END
CUSTOM_OPTIONS_START
CUSTOM_OPTIONS_END
CUSTOM_METHODS_START
CUSTOM_METHODS_END
CUSTOM_STATIC_METHODS_START
CUSTOM_STATIC_METHODS_END
**/
class Event {
//CONSTRUCTOR_TEMPLATE_START
//GENERATE_CONSTRUCTOR_START
constructor(options) {
Event.Emit(Event.OBJECT_CREATED, this);
//OPTIONS_INIT_START
if (typeof options === 'undefined') {
options = {};
}
//OPTIONS_INIT_END
//GENERATE_OPTIONS_INIT_START
//GENERATE_OPTIONS_INIT_END
//CUSTOM_OPTIONS_INIT_START
//CUSTOM_OPTIONS_INIT_END
@ -29,8 +32,17 @@ class Event {
//CUSTOM_BEFORE_INIT_END
Event.Emit(Event.OBJECT_INITIALIZED, this);
//CUSTOM_AFTER_INIT_START
//CUSTOM_AFTER_INIT_END
}
//CONSTRUCTOR_TEMPLATE_END
//GENERATE_CONSTRUCTOR_END
//GENERATE_METHODS_START
//GENERATE_METHODS_END
//GENERATE_STATIC_METHODS_START
//GENERATE_STATIC_METHODS_END
//CUSTOM_IMPLEMENTATION_START
@ -245,6 +257,7 @@ Event.GetEventName = function(eventId) {
};
//EVENT_GENERATED_END
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_END
module.exports = Event;

View File

@ -1,32 +1,37 @@
const Event = require('r3-event');
const Utils = require('r3-utils');
const Event = require('./r3-event');
const Utils = require('./r3-utils');
const R3Object = require('r3-r3-object.js');
/**
OPTIONS_START
isPublic=true
applicationMode=Project.APPLICATION_MODE_EDIT
OPTIONS_END
GENERATE_INHERITED_START
GENERATE_INHERITED_END
INSTANCE_OPTIONS_MAPPING_START
INSTANCE_OPTIONS_MAPPING_END
Of the form x=<value>
CUSTOM_OPTIONS_START
CUSTOM_OPTIONS_END
LINKED_OBJECTS_START
entities=[Entity]
controls=[Control]
images=[Image]
code=[CustomCode]
LINKED_OBJECTS_END
Of the form x=<instance.property>
CUSTOM_INSTANCE_OPTIONS_MAPPING_START
CUSTOM_INSTANCE_OPTIONS_MAPPING_END
EXCLUDED_FROM_INSTANCE_OPTIONS_START
EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_LINKED_OBJECTS_START
CUSTOM_LINKED_OBJECTS_END
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_START
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_METHODS_START
CUSTOM_METHODS_END
CUSTOM_STATIC_METHODS_START
CUSTOM_STATIC_METHODS_END
**/
class Project extends R3Object {
//CONSTRUCTOR_EXTENDS_TEMPLATE_START
//GENERATE_CONSTRUCTOR_EXTENDS_START
constructor(options) {
if (Utils.UndefinedOrNull(options)) {
@ -37,17 +42,8 @@ class Project extends R3Object {
this.emit(Event.OBJECT_CREATED, this);
//OPTIONS_INIT_START
if (typeof options === 'undefined') {
options = {};
}
if (Utils.UndefinedOrNull(options.isPublic)) {
options.isPublic = true;
}
if (Utils.UndefinedOrNull(options.applicationMode)) {
options.applicationMode = Project.APPLICATION_MODE_EDIT;
}
//OPTIONS_INIT_END
//GENERATE_OPTIONS_INIT_START
//GENERATE_OPTIONS_INIT_END
//CUSTOM_OPTIONS_INIT_START
//CUSTOM_OPTIONS_INIT_END
@ -58,100 +54,80 @@ class Project extends R3Object {
//CUSTOM_BEFORE_INIT_END
this.emit(Event.OBJECT_INITIALIZED, this);
}
//CONSTRUCTOR_EXTENDS_TEMPLATE_END
//CREATE_INSTANCE_TEMPLATE_START
//CUSTOM_AFTER_INIT_START
//CUSTOM_AFTER_INIT_END
}
//GENERATE_CONSTRUCTOR_EXTENDS_END
//GENERATE_CREATE_INSTANCE_START
createInstance() {
//CREATE_INSTANCE_BEFORE_START
//GENERATE_CREATE_INSTANCE_BEFORE_START
this.emit(Event.CREATE_INSTANCE_BEFORE, this);
//CREATE_INSTANCE_BEFORE_END
//GENERATE_CREATE_INSTANCE_BEFORE_END
//CUSTOM_CREATE_INSTANCE_START
//CUSTOM_CREATE_INSTANCE_END
//CREATE_INSTANCE_AFTER_START
//GENERATE_CREATE_INSTANCE_AFTER_START
this[this.runtime].createInstance(
this,
{
//CREATE_INSTANCE_OPTIONS_START
'isPublic': this.isPublic,
'applicationMode': this.applicationMode
//CREATE_INSTANCE_OPTIONS_END
//GENERATE_CREATE_INSTANCE_OPTIONS_START
//GENERATE_CREATE_INSTANCE_OPTIONS_END
}
)
this.emit(Event.INSTANCE_CREATED, this);
//CREATE_INSTANCE_AFTER_END
//GENERATE_CREATE_INSTANCE_AFTER_END
}
//CREATE_INSTANCE_TEMPLATE_END
//GENERATE_CREATE_INSTANCE_END
//UPDATE_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_INSTANCE_START
updateInstance(property) {
//UPDATE_INSTANCE_BEFORE_START
//GENERATE_UPDATE_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_INSTANCE_BEFORE, this);
//UPDATE_INSTANCE_BEFORE_END
//GENERATE_UPDATE_INSTANCE_BEFORE_END
//UPDATE_INSTANCE_OPTIONS_START
if (property === 'isPublic') {
this.instance.isPublic = this.isPublic;
return;
}
if (property === 'applicationMode') {
this.instance.applicationMode = this.applicationMode;
return;
}
//UPDATE_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_INSTANCE_START
//CUSTOM_UPDATE_INSTANCE_END
//UPDATE_INSTANCE_AFTER_START
//GENERATE_UPDATE_INSTANCE_AFTER_START
this.emit(Event.UPDATE_INSTANCE_AFTER, this);
//UPDATE_INSTANCE_AFTER_END
//GENERATE_UPDATE_INSTANCE_AFTER_END
}
//UPDATE_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_INSTANCE_END
//UPDATE_FROM_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_FROM_INSTANCE_START
updateFromInstance(property) {
//UPDATE_FROM_INSTANCE_BEFORE_START
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_FROM_INSTANCE_BEFORE, this);
//UPDATE_FROM_INSTANCE_BEFORE_END
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_END
//UPDATE_FROM_INSTANCE_OPTIONS_START
if (property === 'isPublic' || property === 'all') {
this.isPublic = this.instance.isPublic;
if (property !== 'all') {
return;
}
}
if (property === 'applicationMode' || property === 'all') {
this.applicationMode = this.instance.applicationMode;
if (property !== 'all') {
return;
}
}
//UPDATE_FROM_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_FROM_INSTANCE_START
//CUSTOM_UPDATE_FROM_INSTANCE_END
//UPDATE_FROM_INSTANCE_AFTER_START
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_START
this.emit(Event.UPDATE_FROM_INSTANCE_AFTER, this);
//UPDATE_FROM_INSTANCE_AFTER_END
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_END
}
//UPDATE_FROM_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_FROM_INSTANCE_END
//DISPOSE_TEMPLATE_START
//GENERATE_DISPOSE_START
dispose() {
//DISPOSE_BEFORE_START
//GENERATE_DISPOSE_BEFORE_START
this.subscribe(
Event.INSTANCE_DISPOSED,
function(object) {
@ -160,38 +136,43 @@ class Project extends R3Object {
}
}
);
//DISPOSE_BEFORE_END
//GENERATE_DISPOSE_BEFORE_END
//CUSTOM_DISPOSE_START
//CUSTOM_DISPOSE_END
//DISPOSE_AFTER_START
//GENERATE_DISPOSE_AFTER_START
this.disposeInstance();
//DISPOSE_AFTER_END
//GENERATE_DISPOSE_AFTER_END
}
//DISPOSE_TEMPLATE_END
//GENERATE_DISPOSE_END
//DISPOSE_INSTANCE_TEMPLATE_START
//GENERATE_DISPOSE_INSTANCE_START
disposeInstance() {
//DISPOSE_INSTANCE_BEFORE_START
//GENERATE_DISPOSE_INSTANCE_BEFORE_START
console.log('Disposing instance of ' + this.name);
//DISPOSE_INSTANCE_BEFORE_END
//GENERATE_DISPOSE_INSTANCE_BEFORE_END
//CUSTOM_DISPOSE_INSTANCE_START
//CUSTOM_DISPOSE_INSTANCE_END
//DISPOSE_INSTANCE_AFTER_START
//GENERATE_DISPOSE_INSTANCE_AFTER_START
this.emit(Event.DISPOSE_INSTANCE, this);
//DISPOSE_INSTANCE_AFTER_END
//GENERATE_DISPOSE_INSTANCE_AFTER_END
}
//DISPOSE_INSTANCE_TEMPLATE_END
//GENERATE_DISPOSE_INSTANCE_END
//GENERATE_METHODS_START
//GENERATE_METHODS_END
//GENERATE_STATIC_METHODS_START
//GENERATE_STATIC_METHODS_END
//CUSTOM_IMPLEMENTATION_START
//CUSTOM_IMPLEMENTATION_END
}
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_START

View File

@ -1,31 +1,36 @@
const Utils = require('r3-utils');
const Utils = require('./r3-utils');
const Event = require('r3-event.js');
/**
OPTIONS_START
id=Utils.RandomId(10)
name=this.constructor.name + '(' + options.id + ')'
register=true
OPTIONS_END
GENERATE_INHERITED_START
GENERATE_INHERITED_END
INSTANCE_OPTIONS_MAPPING_START
INSTANCE_OPTIONS_MAPPING_END
Of the form x=<value>
CUSTOM_OPTIONS_START
CUSTOM_OPTIONS_END
LINKED_OBJECTS_START
LINKED_OBJECTS_END
Of the form x=<instance.property>
CUSTOM_INSTANCE_OPTIONS_MAPPING_START
CUSTOM_INSTANCE_OPTIONS_MAPPING_END
EXCLUDED_FROM_INSTANCE_OPTIONS_START
id
name
register
EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_LINKED_OBJECTS_START
CUSTOM_LINKED_OBJECTS_END
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_START
CUSTOM_EXCLUDED_FROM_INSTANCE_OPTIONS_END
CUSTOM_METHODS_START
CUSTOM_METHODS_END
CUSTOM_STATIC_METHODS_START
CUSTOM_STATIC_METHODS_END
**/
class R3Object extends Event {
//CONSTRUCTOR_EXTENDS_TEMPLATE_START
//GENERATE_CONSTRUCTOR_EXTENDS_START
constructor(options) {
if (Utils.UndefinedOrNull(options)) {
@ -36,20 +41,8 @@ class R3Object extends Event {
this.emit(Event.OBJECT_CREATED, this);
//OPTIONS_INIT_START
if (typeof options === 'undefined') {
options = {};
}
if (Utils.UndefinedOrNull(options.id)) {
options.id = Utils.RandomId(10);
}
if (Utils.UndefinedOrNull(options.name)) {
options.name = this.constructor.name + '(' + options.id + ')';
}
if (Utils.UndefinedOrNull(options.register)) {
options.register = true;
}
//OPTIONS_INIT_END
//GENERATE_OPTIONS_INIT_START
//GENERATE_OPTIONS_INIT_END
//CUSTOM_OPTIONS_INIT_START
//CUSTOM_OPTIONS_INIT_END
@ -60,78 +53,80 @@ class R3Object extends Event {
//CUSTOM_BEFORE_INIT_END
this.emit(Event.OBJECT_INITIALIZED, this);
}
//CONSTRUCTOR_EXTENDS_TEMPLATE_END
//CREATE_INSTANCE_TEMPLATE_START
//CUSTOM_AFTER_INIT_START
//CUSTOM_AFTER_INIT_END
}
//GENERATE_CONSTRUCTOR_EXTENDS_END
//GENERATE_CREATE_INSTANCE_START
createInstance() {
//CREATE_INSTANCE_BEFORE_START
//GENERATE_CREATE_INSTANCE_BEFORE_START
this.emit(Event.CREATE_INSTANCE_BEFORE, this);
//CREATE_INSTANCE_BEFORE_END
//GENERATE_CREATE_INSTANCE_BEFORE_END
//CUSTOM_CREATE_INSTANCE_START
//CUSTOM_CREATE_INSTANCE_END
//CREATE_INSTANCE_AFTER_START
//GENERATE_CREATE_INSTANCE_AFTER_START
this[this.runtime].createInstance(
this,
{
//CREATE_INSTANCE_OPTIONS_START
//CREATE_INSTANCE_OPTIONS_END
//GENERATE_CREATE_INSTANCE_OPTIONS_START
//GENERATE_CREATE_INSTANCE_OPTIONS_END
}
)
this.emit(Event.INSTANCE_CREATED, this);
//CREATE_INSTANCE_AFTER_END
//GENERATE_CREATE_INSTANCE_AFTER_END
}
//CREATE_INSTANCE_TEMPLATE_END
//GENERATE_CREATE_INSTANCE_END
//UPDATE_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_INSTANCE_START
updateInstance(property) {
//UPDATE_INSTANCE_BEFORE_START
//GENERATE_UPDATE_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_INSTANCE_BEFORE, this);
//UPDATE_INSTANCE_BEFORE_END
//GENERATE_UPDATE_INSTANCE_BEFORE_END
//UPDATE_INSTANCE_OPTIONS_START
//UPDATE_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_INSTANCE_START
//CUSTOM_UPDATE_INSTANCE_END
//UPDATE_INSTANCE_AFTER_START
//GENERATE_UPDATE_INSTANCE_AFTER_START
this.emit(Event.UPDATE_INSTANCE_AFTER, this);
//UPDATE_INSTANCE_AFTER_END
//GENERATE_UPDATE_INSTANCE_AFTER_END
}
//UPDATE_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_INSTANCE_END
//UPDATE_FROM_INSTANCE_TEMPLATE_START
//GENERATE_UPDATE_FROM_INSTANCE_START
updateFromInstance(property) {
//UPDATE_FROM_INSTANCE_BEFORE_START
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_START
this.emit(Event.UPDATE_FROM_INSTANCE_BEFORE, this);
//UPDATE_FROM_INSTANCE_BEFORE_END
//GENERATE_UPDATE_FROM_INSTANCE_BEFORE_END
//UPDATE_FROM_INSTANCE_OPTIONS_START
//UPDATE_FROM_INSTANCE_OPTIONS_END
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_START
//GENERATE_UPDATE_FROM_INSTANCE_OPTIONS_END
//CUSTOM_UPDATE_FROM_INSTANCE_START
//CUSTOM_UPDATE_FROM_INSTANCE_END
//UPDATE_FROM_INSTANCE_AFTER_START
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_START
this.emit(Event.UPDATE_FROM_INSTANCE_AFTER, this);
//UPDATE_FROM_INSTANCE_AFTER_END
//GENERATE_UPDATE_FROM_INSTANCE_AFTER_END
}
//UPDATE_FROM_INSTANCE_TEMPLATE_END
//GENERATE_UPDATE_FROM_INSTANCE_END
//DISPOSE_TEMPLATE_START
//GENERATE_DISPOSE_START
dispose() {
//DISPOSE_BEFORE_START
//GENERATE_DISPOSE_BEFORE_START
this.subscribe(
Event.INSTANCE_DISPOSED,
function(object) {
@ -140,38 +135,43 @@ class R3Object extends Event {
}
}
);
//DISPOSE_BEFORE_END
//GENERATE_DISPOSE_BEFORE_END
//CUSTOM_DISPOSE_START
//CUSTOM_DISPOSE_END
//DISPOSE_AFTER_START
//GENERATE_DISPOSE_AFTER_START
this.disposeInstance();
//DISPOSE_AFTER_END
//GENERATE_DISPOSE_AFTER_END
}
//DISPOSE_TEMPLATE_END
//GENERATE_DISPOSE_END
//DISPOSE_INSTANCE_TEMPLATE_START
//GENERATE_DISPOSE_INSTANCE_START
disposeInstance() {
//DISPOSE_INSTANCE_BEFORE_START
//GENERATE_DISPOSE_INSTANCE_BEFORE_START
console.log('Disposing instance of ' + this.name);
//DISPOSE_INSTANCE_BEFORE_END
//GENERATE_DISPOSE_INSTANCE_BEFORE_END
//CUSTOM_DISPOSE_INSTANCE_START
//CUSTOM_DISPOSE_INSTANCE_END
//DISPOSE_INSTANCE_AFTER_START
//GENERATE_DISPOSE_INSTANCE_AFTER_START
this.emit(Event.DISPOSE_INSTANCE, this);
//DISPOSE_INSTANCE_AFTER_END
//GENERATE_DISPOSE_INSTANCE_AFTER_END
}
//DISPOSE_INSTANCE_TEMPLATE_END
//GENERATE_DISPOSE_INSTANCE_END
//GENERATE_METHODS_START
//GENERATE_METHODS_END
//GENERATE_STATIC_METHODS_START
//GENERATE_STATIC_METHODS_END
//CUSTOM_IMPLEMENTATION_START
//CUSTOM_IMPLEMENTATION_END
}
//CUSTOM_OUT_OF_CLASS_IMPLEMENTATION_START

View File

@ -8,7 +8,7 @@ const Utils = require('.././r3-utils');
CUSTOM_OPTIONS_END
CUSTOM_METHODS_START
start(options, anotherOption)
start(options)
stop(options)
CUSTOM_METHODS_END

View File

@ -2,23 +2,26 @@ const Event = require('./r3-event');
/**
OPTIONS_START
OPTIONS_END
CUSTOM_OPTIONS_START
CUSTOM_OPTIONS_END
CUSTOM_METHODS_START
CUSTOM_METHODS_END
CUSTOM_STATIC_METHODS_START
CUSTOM_STATIC_METHODS_END
**/
class Utils {
//CONSTRUCTOR_TEMPLATE_START
//GENERATE_CONSTRUCTOR_START
constructor(options) {
Event.Emit(Event.OBJECT_CREATED, this);
//OPTIONS_INIT_START
if (typeof options === 'undefined') {
options = {};
}
//OPTIONS_INIT_END
//GENERATE_OPTIONS_INIT_START
//GENERATE_OPTIONS_INIT_END
//CUSTOM_OPTIONS_INIT_START
//CUSTOM_OPTIONS_INIT_END
@ -29,8 +32,17 @@ class Utils {
//CUSTOM_BEFORE_INIT_END
Event.Emit(Event.OBJECT_INITIALIZED, this);
//CUSTOM_AFTER_INIT_START
//CUSTOM_AFTER_INIT_END
}
//CONSTRUCTOR_TEMPLATE_END
//GENERATE_CONSTRUCTOR_END
//GENERATE_METHODS_START
//GENERATE_METHODS_END
//GENERATE_STATIC_METHODS_START
//GENERATE_STATIC_METHODS_END
//CUSTOM_IMPLEMENTATION_START
static GetFirstParent(object, constructor) {
@ -56,7 +68,7 @@ class Utils {
json = JSON.stringify(json, undefined, 2);
}
json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
let cls = 'number';
if (/^"/.test(match)) {
if (/:$/.test(match)) {
@ -591,8 +603,8 @@ class Utils {
let FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;
let FN_ARG_SPLIT = /,/;
let FN_ARG = /^\s*(_?)(.+?)\1\s*$/;
let STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
let FN_ARG = /^\s*(_?)(.+?)\s*$/;
let STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\'|[^'\r\n])*')|("(?:\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
let parameters,
fnText,

View File

@ -43,7 +43,7 @@ CUSTOM_STATIC_METHOD_NAME_UPPERCASE_METHOD
CUSTOM_STATIC_METHODS
CUSTOM_STATIC_START_METHOD
CUSTOM_STATIC_STOP_METHOD
CUSTOM_STATIC_TEST_METHOD
CUSTOM_STATIC_TEST_RENAMED_METHOD
CUSTOM_STOP_METHOD
CUSTOM_TEST_RENAMED_METHOD
CUSTOM_UPDATE_FROM_INSTANCE

View File

@ -12,181 +12,6 @@ function from_camel_case($input) {
return implode('_', $ret);
}
function getIndex($needle, $haystack) {
$index = 0;
foreach ($haystack as $value) {
if (preg_match('/\b' . $needle . '\b/', $value)) {
return $index;
}
$index++;
}
return false;
}
function loadSavedData($file) {
$saveFile = $file . '.saved';
echo "restoring file " . $saveFile . "\n";
$sh = fopen($saveFile, "r");
$saved = [];
while (!feof($sh)) {
$line = fgets($sh);
array_push($saved, $line);
}
while ($saved[sizeof($saved) - 1] === false && sizeof($saved) > 0) {
array_pop($saved);
}
fclose($sh);
return $saved;
}
function restore($file, $tokens, $saved) {
$fh = fopen($file, "r");
$data = [];
$restoreTokenPair = [];
$restoreDepth = 0;
while (!feof($fh)) {
$line = fgets($fh);
foreach ($tokens as $startToken => $endToken) {
if (preg_match('/\b' . $startToken . '\b/', $line)) {
$restoreDepth++;
if ($restoreDepth === 1) {
$restoreTokenPair[0] = $startToken;
$restoreTokenPair[1] = $endToken;
}
break;
}
if (preg_match('/\b' . $endToken . '\b/', $line)) {
$restoreDepth--;
break;
}
}
if ($restoreDepth === 1) {
$startIndex = getIndex($restoreTokenPair[0], $saved);
$endIndex = getIndex($restoreTokenPair[1], $saved);
for ($i = $startIndex; $i <= $endIndex; $i++) {
array_push($data, $saved[$i]);
}
/**
* Seek to the end token in the file
*/
while (!feof($fh) && !(preg_match('/\b' . $restoreTokenPair[1] . '\b/', $line))){
$line = fgets($fh);
}
$restoreDepth--;
} else {
array_push($data, $line);
}
}
fclose($fh);
file_put_contents($file, $data);
}
//function install_method_templates($file)
//{
// $fn = fopen($file, "r");
//
// $saveLine = true;
//
// $methods = [];
//
// $saveMethod = false;
//
// $lines = [];
//
//// $discoveredMethodTokens = [];
//
// while (!feof($fn)) {
//
// $line = fgets($fn);
//
// /**
// * if exiting an options definition block - stop saving that definition
// */
// if (preg_match('/\bSTATIC_METHODS_END\b/', $line)) {
// $saveMethod = false;
// }
////
//// $matches = [];
//// if (preg_match('/\bCUSTOM_.*?_METHOD_START\b/', $line, $matches)) {
//// $discoveredMethodTokens[$matches[0]] = preg_replace('/_START$/','_END',$matches[0]);
//// }
//
// /**
// * if exiting an method implementation block - save the line for later
// */
// if (preg_match('/\bSTATIC_METHODS_DEFINITION_END\b/', $line)) {
// $saveLine = true;
// }
//
// /**
// * Now save the line
// */
// if ($saveLine) {
// array_push($lines, $line);
// }
//
// /**
// * if entering an options implementation block - do not save the line for later
// */
// if (preg_match('/\bSTATIC_METHODS_DEFINITION_START\b/', $line)) {
// $saveLine = false;
// }
//
// if ($saveMethod) {
//
// $line = trim($line);
//
// array_push($methods, $line);
// }
//
// /**
// * If entering an options definition block - start saving that definition
// */
// if (preg_match('/\bSTATIC_METHODS_START\b/', $line)) {
// $saveMethod = true;
// }
//
// }
//
// fclose($fn);
//
// file_put_contents($file, $lines);
//
function getTokens($type)
{
$fn = fopen('src/templates/token.db', "r");
@ -209,29 +34,6 @@ function getTokens($type)
return $tokens;
}
//function get_method_tokens($file)
//{
// $fn = fopen($file, "r");
//
// $discoveredMethodTokens = [];
//
// while (!feof($fn)) {
//
// $line = fgets($fn);
//
// $matches = [];
// if (preg_match('/\bCUSTOM_.*?_METHOD_START\b/', $line, $matches)) {
// $discoveredMethodTokens[$matches[0]] = preg_replace('/_START$/','_END',$matches[0]);
// }
//
// }
//
// fclose($fn);
//
// return $discoveredMethodTokens;
//
//}
/**
* @throws ErrorException
*/
@ -410,14 +212,6 @@ function updateSection($file, $token, $updates, $separator = "") {
$whiteSpace = $whiteSpaceObject['white-space'];
/**
* If we already have whitespace in our updates at the start - we took care of
* formatting from a template, otherwise - apply some whitespace to it
*/
// if (!preg_match('/^(\s)+/', $updates)) {
// $updates = $whiteSpace . $updates;
// }
$contents = preg_replace(
'/\b' . $token . '_START\b.*?\b' . $token . '_END\b/s',
$token . "_START\n" . $updates . $whiteSpace . $endToken,
@ -768,60 +562,7 @@ foreach ($files as $file) {
deleteSavedFile($saveFile);
exit(0);
}
} else if ($argv[2] == 'update-methods') {
$restoreTokens = getTokens('CUSTOM');
$restoreTokenKeys = array_keys($restoreTokens);
$tokens = loadSaved($file, $restoreTokens);
foreach ($tokens as $token => $store) {
if (in_array($token, $restoreTokenKeys)) {
updateSection($file, $token, $store, "\n ");
}
}
generateMethods($file, $tokens);
generateStaticMethods($file, $tokens);
echo `r3 update-token-db`;
} else if ($argv[2] == 'update-options') {
$tokens = getTokens('CUSTOM');
$result = save($file, $tokens);
$saveFile = $result[0];
$tokens = $result[1];
try {
generateInitOptions($file, $tokens);
generateCreateInstanceOptions($file, $tokens);
generateUpdateInstanceOptions($file, $tokens);
generateUpdateFromInstanceOptions($file, $tokens);
generateMethods($file, $tokens);
generateStaticMethods($file, $tokens);
echo `r3 update-token-db`;
// unlink($saveFile);
} catch (Exception $e) {
print_r($e);
echo "An error occurred and the custom data is saved at $saveFile\n";
echo "Please restore it manually...\n";
}
}
}
exit(0);