map-old.js
Wyg.Map = class {
constructor(map = []){
this.map = map;
// const exampleMap = {
// "node":node,
// "key":"some_key",
// "field":"field",
// "code":"some_html",
// };
}
getRef(mapKey,mapValue){
for (const refObj of this.map){
if (refObj.hasOwnProperty(mapKey)
&&refObj[mapKey]===mapValue){
return refObj;
}
}
const ref = {};
ref[mapKey] = mapValue;
this.map.push(ref);
return ref;
}
setNode(node,siblingKey,siblingValue){
this.set('node',node,siblingKey,siblingValue);
}
setKey(key,siblingKey,siblingValue){
this.set('key',key,siblingKey,siblingValue);
}
setField(field,siblingKey,siblingValue){
this.set('field',field,siblingKey,siblingValue);
}
setCode(code,siblingKey,siblingValue){
this.set('code',code,siblingKey,siblingValue);
}
set(insertKey,insertValue,refKey,refValue){
let ref = this.getRef(refKey,refValue);
//console.log(ref);
ref[insertKey] = insertValue;
}
from(desiredKey,fromKey,fromValue){
const ref = this.getRef(fromKey,fromValue);
if (ref!=null&&ref.hasOwnProperty(desiredKey))return ref[desiredKey];
if (desiredKey=='field'
&&fromKey=='code'){
const field = new Wyg.Field(fromValue);
this.setField(field,fromKey,fromValue);
return field;
}
}
fieldsFromNode(node){
}
fromNode(lookingFor,fromValue){
return this.from(lookingFor,'node',fromValue);
}
fromKey(lookingFor,fromValue){
return this.from(key,'key',fromValue);
}
fromField(lookingFor,fromValue){
return this.from(lookingFor,'field',fromValue);
}
fromCode(lookingFor,fromValue){
return this.from(lookingFor,'code',fromValue);
}
/* removed because dumb
//-----------------------
nodeFromNode(node){
return this.from('node','node',node);
}
//-----------------------
*/
nodeFromKey(key){
return this.from('node','key',key);
}
nodeFromField(field){
return this.from('node','field',field);
}
nodeFromCode(code){
return this.from('node','code',code);
}
keyFromNode(node){
return this.from('key','node',node);
}
/* removed because dumb
//-----------------------
keyFromKey(key){
return this.from('key','key',key);
}
//-----------------------
*/
keyFromField(field){
return this.from('key','field',field);
}
keyFromCode(code){
return this.from('key','code',code);
}
fieldFromNode(node){
return this.from('field','node',node);
}
fieldFromKey(key){
return this.from('field','key',key);
}
/* removed because dumb
//-----------------------
fieldFromField(field){
return this.from('field','field',field);
}
//-----------------------
*/
fieldFromCode(code){
return this.from('field','code',code);
}
codeFromNode(node){
return this.from('code','node',node);
}
codeFromKey(key){
return this.from('code','key',key);
}
codeFromField(field){
return this.from('code','field',field);
}
/* removed because dumb
//-----------------------
codeFromCode(code){
return this.from('code','code',code);
}
//-----------------------
*/
}