@Override public Object getMember(String name) { return delegate.getMember(name); }
@Override public Object get(String aName, String aKey) { Object value = delegate.getMember(aName); if (value == null) { throw new NullPointerException("No mapped value for '" + aName + "(" + aKey + ")'"); } else if (value instanceof JSObject) { return wrap(((JSObject) value).getMember(aKey), timezoneOffset); } else if (value instanceof Map) { return wrap(((Map) value).get(aKey), timezoneOffset); } else { throw new IllegalArgumentException("Non-mapped property for '" + aName + "(" + aKey + ")'"); } }
public static void unlisten(JSObject aCookie) { if (aCookie != null) { JSObject unlisten = (JSObject) aCookie.getMember("unlisten"); unlisten.call(null, new Object[]{}); } }
private Collection<CallPoint> toCallPoints(Collection<String> requiredModules) { return requiredModules.stream() .map(validatorName -> createModule(validatorName)) .filter(module -> module != null) .filter(module -> module.getMember("validate") instanceof JSObject) .map(module -> new CallPoint(module, (JSObject) module.getMember("validate"))) .collect(Collectors.toList()); } }
@Override public ScriptValue getMember( final String key ) { return this.factory.newValue( this.value.getMember( key ) ); }
public JSDynaList(JSObject aDelegate, int aTimezoneOffset) { super(); if (aDelegate != null) { delegate = aDelegate; length = JSType.toInteger(delegate.getMember("length")); timezoneOffset = aTimezoneOffset; } else { throw new IllegalArgumentException("A Delegate could not be null."); } }
protected JSObject resolveEntity(String aEntityName) throws Exception { if (model.hasMember(aEntityName)) { Object oEntity = model.getMember(aEntityName); if (oEntity instanceof JSObject) { return (JSObject) oEntity; } } return null; }
@Override public DynaProperty[] getDynaProperties() { if (properties.isEmpty()) { delegate.keySet().forEach((String key) -> { Object oMember = delegate.getMember(key); if (!(oMember instanceof JSObject) || !((JSObject) oMember).isFunction()) { properties.put(key, new DynaProperty(key)); } }); } return properties.values().toArray(new DynaProperty[]{}); }
@Override public void visit(Command aChange) throws Exception { Object parameters = sChange.getMember(CHANGE_PARAMETERS_NAME); aChange.getParameters().addAll(parseObjectProperties(parameters)); }
private ServerModuleInfo readInfo(String aModuleName, JSObject jsProxy) { Set<String> functions = new HashSet<>(); JSObject jsFunctions = (JSObject) jsProxy.getMember(CREATE_MODULE_RESPONSE_FUNCTIONS_PROP); int length = JSType.toInteger(jsFunctions.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < length; i++) { String fName = JSType.toString(jsFunctions.getSlot(i)); functions.add(fName); } boolean permitted = JSType.toBoolean(jsProxy.getMember(CREATE_MODULE_RESPONSE_IS_PERMITTED_PROP)); return new ServerModuleInfo(aModuleName, functions, permitted); }
protected List<ChangeValue> parseObjectProperties(Object oData) throws Exception { List<ChangeValue> data = new ArrayList<>(); if (oData instanceof JSObject) { JSObject sValue = (JSObject) oData; sValue.keySet().stream().forEach((sValueName) -> { Object oValueValue = sValue.getMember(sValueName); Object convertedValueValue = space.toJava(oValueValue); data.add(new ChangeValue(sValueName, convertedValueValue)); }); } return data; }
@Override public void visit(Insert aChange) throws Exception { Object oData = sChange.getMember(CHANGE_DATA_NAME); aChange.getData().addAll(parseObjectProperties(oData)); }
protected void generateDataNamedMap(XLSTransformer aTransformer) throws Exception { generated = new HashMap<>(); if (scriptData != null) { scriptData.keySet().stream().forEach((sid) -> { Object subject = scriptData.getMember(sid); generated.put(sid, JSDynaBean.wrap(subject, template.getTimezoneOffset())); }); } } }
public JSObject toJsArray(List aArray) { JSObject published = makeArray(); JSObject push = (JSObject) published.getMember("push"); for (int i = 0; i < aArray.size(); i++) { push.call(published, toJs(aArray.get(i))); } return published; }
public JSObject readJsArray(Collection<Map<String, Object>> aCollection) { JSObject result = makeArray(); JSObject jsPush = (JSObject) result.getMember("push"); aCollection.forEach((Map<String, Object> aItem) -> { JSObject jsItem = makeObj(); aItem.entrySet().forEach((Map.Entry<String, Object> aItemContent) -> { jsItem.setMember(aItemContent.getKey(), toJs(aItemContent.getValue())); }); jsPush.call(result, new Object[]{jsItem}); }); return result; }
@Override public Object invokeMethod(Object thiz, String method, Object... args) { if (thiz instanceof JSObject) { if (((JSObject) thiz).hasMember(method)) { Object fn = ((JSObject) thiz).getMember(method); return ((JSObject) fn).call(thiz, args); } } return null; }
@ScriptFunction(jsDoc = CHANGED_JS_DOC, params = "aChanged") public void changed(JSObject aChangedItems) { if (aChangedItems.hasMember("length") && JSType.toNumber(aChangedItems.getMember("length")) > 0) { rowsModel.fireElementsDataChanged(); } }
@Undesignable @ScriptFunction(name = "selected") public JSObject getJsSelected() throws Exception { List<JSObject> selectedRows = getSelected(); JSObject jsArray = Scripts.getSpace().makeArray(); JSObject jsPush = (JSObject) jsArray.getMember("push"); selectedRows.forEach((Object aItem) -> { jsPush.call(jsArray, new Object[]{aItem}); }); return jsArray; }
@Override public void encodeToWire(Buffer buffer, ScriptObjectMirror jsObject) { if (jsObject == null) { buffer.appendInt(0); return; } final JSObject JSON = (JSObject) jsObject.eval("JSON"); final JSObject stringify = (JSObject) JSON.getMember("stringify"); Buffer encoded = Buffer.buffer((String) stringify.call(JSON, jsObject)); buffer.appendInt(encoded.length()); buffer.appendBuffer(buffer); }