Comparing version 0.4.10 to 0.4.13
{ | ||
"name": "jjjrmi", | ||
"version": "0.4.10", | ||
"version": "0.4.13", | ||
"keywords": [ | ||
@@ -13,3 +13,5 @@ "util", | ||
"contributors": [], | ||
"dependencies": {}, | ||
"dependencies": { | ||
"jjjserver": "^0.4.19" | ||
}, | ||
"main": "./src/JJJRMISocket.js", | ||
@@ -16,0 +18,0 @@ "files": [ |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
Constants = class Constants { | ||
@@ -2,0 +3,0 @@ constructor() { |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
let Constants = require("./Constants"); | ||
@@ -2,0 +3,0 @@ let EncodedJSON = require("./EncodedJSON"); |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
class EncodedJSON{ | ||
@@ -2,0 +3,0 @@ constructor(json){ |
@@ -0,4 +1,16 @@ | ||
"use strict"; | ||
/* global Constants */ | ||
let Constants = require("./Constants"); | ||
class EncoderInterfaceException extends Error{ | ||
constructor(object, method){ | ||
super(`Object of class '${object.constructor.name}' is missing method '${method}'`); | ||
this.object = object; | ||
} | ||
getObject(){ | ||
return this.object; | ||
} | ||
} | ||
class Encoder { | ||
@@ -11,9 +23,9 @@ constructor(object, translator, keys) { | ||
if (typeof object.constructor.__isTransient !== "function") { | ||
throw new Error(`Class "${object.constructor.name}" missing method "__isTransient".`); | ||
EncoderInterfaceException(object, "__isTransient"); | ||
} | ||
if (typeof object.constructor.__isEnum !== "function") { | ||
throw new Error(`Class "${object.constructor.name}" missing method "__isEnum".`); | ||
EncoderInterfaceException(object, "__isEnum"); | ||
} | ||
if (typeof object.constructor.__getClass !== "function") { | ||
throw new Error(`Class "${object.constructor.name}" missing method "__getClass".`); | ||
EncoderInterfaceException(object, "__getClass"); | ||
} | ||
@@ -47,8 +59,17 @@ } | ||
} | ||
/* The object's class is expected to be generated from java at this point */ | ||
if (typeof this.object.constructor.__isEnum !== "function"){ | ||
throw new EncoderInterfaceException(this.object, "__isEnum"); | ||
} | ||
if (typeof this.object.constructor.__getClass !== "function"){ | ||
throw new EncoderInterfaceException(this.object, "__getClass"); | ||
} | ||
if (typeof this.object.constructor.__isTransient !== "function"){ | ||
throw new EncoderInterfaceException(this.object, "__isTransient"); | ||
} | ||
/* is Enum */ | ||
else if (this.object.constructor.__isEnum()) { | ||
return new EncodedEnum(this.object, this.translator, this.keys).toJSON(); | ||
} | ||
/* handler has been registered */ | ||
else if (this.translator.hasHandler(this.object.constructor)) { | ||
if (this.translator.hasHandler(this.object.constructor)) { | ||
let handler = this.translator.getHandler(this.object.constructor); | ||
@@ -64,3 +85,6 @@ let encodedObject = new EncodedObject(this.object, this.translator, this.keys); | ||
return encodedObject.toJSON(); | ||
} | ||
} | ||
else if (this.object.constructor.__isEnum()) { | ||
return new EncodedEnum(this.object, this.translator, this.keys).toJSON(); | ||
} | ||
/* encode object */ | ||
@@ -174,2 +198,8 @@ else { | ||
/** | ||
* Add a key-value pair to the json object. | ||
* @param {type} name | ||
* @param {type} value | ||
* @returns {undefined} | ||
*/ | ||
setField(name, value) { | ||
@@ -176,0 +206,0 @@ let encodedValue = new Encoder(value, this.translator, this.keys).encode(); |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
let ArrayList = class ArrayList { | ||
@@ -2,0 +3,0 @@ constructor() { |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
let HashMap = class HashMap { | ||
@@ -2,0 +3,0 @@ constructor() { |
@@ -0,3 +1,4 @@ | ||
"use strict"; | ||
let Translator = require("./Translator"); | ||
let jjjrmi = require("./gen/package"); | ||
let jjjserver = require("jjjserver"); | ||
let ArrayList = require("./java-equiv/ArrayList"); | ||
@@ -88,3 +89,3 @@ let HashMap = require("./java-equiv/HashMap"); | ||
}; | ||
let packet = new jjjrmi.MethodRequest(uid, ptr, methodName, argsArray); | ||
let packet = new jjjserver.MethodRequest(uid, ptr, methodName, argsArray); | ||
let encodedPacket = this.translator.encode(packet); | ||
@@ -116,3 +117,3 @@ if (this.flags.SENT) console.log(encodedPacket); | ||
switch (rmiMessage.type) { | ||
case jjjrmi.JJJMessageType.FORGET:{ | ||
case jjjserver.JJJMessageType.FORGET:{ | ||
if (this.flags.ONMESSAGE) console.log(this.jjjSocketName + " FORGET"); | ||
@@ -122,3 +123,3 @@ this.translator.removeByKey(rmiMessage.key); | ||
} | ||
case jjjrmi.JJJMessageType.READY:{ | ||
case jjjserver.JJJMessageType.READY:{ | ||
if (this.flags.CONNECT || this.flags.ONMESSAGE) console.log(this.jjjSocketName + " READY"); | ||
@@ -129,3 +130,3 @@ this.onready(rmiMessage.getRoot()); | ||
/* client originated request */ | ||
case jjjrmi.JJJMessageType.LOCAL:{ | ||
case jjjserver.JJJMessageType.LOCAL:{ | ||
if (this.flags.ONMESSAGE) console.log(`Response to client side request: ${this.jjjSocketName} ${rmiMessage.methodName}`); | ||
@@ -138,3 +139,3 @@ let callback = this.callback[rmiMessage.uid]; | ||
/* server originated request */ | ||
case jjjrmi.JJJMessageType.REMOTE:{ | ||
case jjjserver.JJJMessageType.REMOTE:{ | ||
if (this.flags.ONMESSAGE) console.log(`Server side originated request: ${this.jjjSocketName} ${rmiMessage.methodName}`); | ||
@@ -152,3 +153,3 @@ let target = this.translator.getReferredObject(rmiMessage.ptr); | ||
} | ||
case jjjrmi.JJJMessageType.EXCEPTION:{ | ||
case jjjserver.JJJMessageType.EXCEPTION:{ | ||
if (!this.flags.SILENT) console.log(this.jjjSocketName + " EXCEPTION " + rmiMessage.methodName); | ||
@@ -161,3 +162,3 @@ if (!this.flags.SILENT) console.warn(rmiMessage); | ||
} | ||
case jjjrmi.JJJMessageType.REJECTED_CONNECTION:{ | ||
case jjjserver.JJJMessageType.REJECTED_CONNECTION:{ | ||
if (this.flags.CONNECT || this.flags.ONMESSAGE) console.log(this.jjjSocketName + " REJECTED_CONNECTION"); | ||
@@ -221,5 +222,5 @@ this.onreject(); | ||
/* for registering all classes returned from generated JS */ | ||
JJJRMISocket.registerPackage = function(package){ | ||
for (let aClass in package){ | ||
JJJRMISocket.registerClass(package[aClass]); | ||
JJJRMISocket.registerPackage = function(packageFile){ | ||
for (let aClass in packageFile){ | ||
JJJRMISocket.registerClass(packageFile[aClass]); | ||
} | ||
@@ -229,3 +230,3 @@ }; | ||
/* register the classes required for JJJRMISocket */ | ||
JJJRMISocket.registerPackage(jjjrmi); | ||
JJJRMISocket.registerPackage(jjjserver); | ||
JJJRMISocket.registerClass(ArrayList); | ||
@@ -232,0 +233,0 @@ JJJRMISocket.registerClass(HashMap); |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
let Encoder = require("./Encoder"); | ||
@@ -2,0 +3,0 @@ let Decoder = require("./Decoder"); |
38597
1
10
1025
20
+ Addedjjjserver@^0.4.19
+ Addedjjjserver@0.4.19(transitive)