List of usage examples for jdk.nashorn.api.scripting JSObject getSlot
public Object getSlot(final int index);
From source file:com.eas.client.queries.LocalQueriesProxy.java
private void readScriptFields(String aQueryName, JSObject sSchema, Fields fields, Scripts.Space aSpace) { Object oLength = sSchema.getMember("length"); if (oLength instanceof Number) { int length = ((Number) oLength).intValue(); for (int i = 0; i < length; i++) { Object oElement = sSchema.getSlot(i); if (oElement instanceof JSObject) { JSObject sElement = (JSObject) oElement; Object oFieldName = aSpace .toJava(sElement.hasMember("name") ? sElement.getMember("name") : null); if (oFieldName instanceof String && !((String) oFieldName).isEmpty()) { String sFieldName = (String) oFieldName; Field field = fields instanceof Parameters ? new Parameter() : new Field(); field.setTypeInfo(DataTypeInfo.OTHER); fields.add(field);/*from w w w . ja v a 2 s .c o m*/ field.setName(sFieldName); field.setOriginalName(sFieldName); Object oEntity = aSpace .toJava(sElement.hasMember("entity") ? sElement.getMember("entity") : null); if (oEntity instanceof String && !((String) oEntity).isEmpty()) { field.setTableName((String) oEntity); } else { field.setTableName(aQueryName); } Object oDescription = aSpace.toJava( sElement.hasMember("description") ? sElement.getMember("description") : null); if (oDescription instanceof String && !((String) oDescription).isEmpty()) { field.setDescription((String) oDescription); } Object oType = sElement.getMember("type"); if (oType instanceof JSObject && ((JSObject) oType).isFunction()) { Object ofName = aSpace.toJava(((JSObject) oType).getMember("name")); if (ofName instanceof String) { String fName = (String) ofName; if (String.class.getSimpleName().equals(fName)) { field.setTypeInfo(DataTypeInfo.VARCHAR.copy()); } else if (Number.class.getSimpleName().equals(fName)) { field.setTypeInfo(DataTypeInfo.DECIMAL.copy()); } else if (Boolean.class.getSimpleName().equals(fName)) { field.setTypeInfo(DataTypeInfo.BOOLEAN.copy()); } else if (Date.class.getSimpleName().equals(fName)) { field.setTypeInfo(DataTypeInfo.TIMESTAMP.copy()); } } } Object oRequired = aSpace .toJava(sElement.hasMember("required") ? sElement.getMember("required") : null); if (oRequired instanceof Boolean) { boolean bRequired = (Boolean) oRequired; field.setNullable(!bRequired); } Object oKey = aSpace.toJava(sElement.hasMember("key") ? sElement.getMember("key") : null); if (oKey instanceof Boolean) { boolean bKey = (Boolean) oKey; field.setPk(bKey); field.setNullable(false); } Object oRef = sElement.hasMember("ref") ? sElement.getMember("ref") : null; if (oRef instanceof JSObject) { JSObject sRef = (JSObject) oRef; Object oProperty = aSpace .toJava(sRef.hasMember("property") ? sRef.getMember("property") : null); if (oProperty instanceof String) { String sProperty = (String) oProperty; if (!sProperty.isEmpty()) { Object oRefEntity = sRef.hasMember("entity") ? sRef.getMember("entity") : null; String sRefEntity; if (oRefEntity instanceof String && !((String) oRefEntity).isEmpty()) { sRefEntity = (String) oRefEntity; } else { sRefEntity = aQueryName; } field.setFk(new ForeignKeySpec(null, aQueryName, field.getName(), null, ForeignKeySpec.ForeignKeyRule.CASCADE, ForeignKeySpec.ForeignKeyRule.CASCADE, false, null, sRefEntity, sProperty, null)); } } } } } } } }
From source file:com.eas.client.RemoteModulesProxy.java
@Override public ModuleStructure getModule(String aName, Scripts.Space aSpace, Consumer<ModuleStructure> onSuccess, Consumer<Exception> onFailure) throws Exception { if (onSuccess != null) { requestModuleStructure(aName, aSpace, (ModuleStructureRequest.Response structureResp) -> { try { ModuleStructure structure = new ModuleStructure(); JSObject jsStructure = (JSObject) aSpace.parseJson(structureResp.getJson()); readCommons(jsStructure, structure); JSObject jsParts = (JSObject) jsStructure.getMember(STRUCTURE_PROP_NAME); int partsLength = JSType.toInteger(jsParts.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < partsLength; i++) { String resourceName = JSType.toString(jsParts.getSlot(i)); getResource(resourceName, aSpace, (File aSynced) -> { structure.getParts().addFile(aSynced); if (structure.getParts().getFiles().size() == partsLength) { id2files.put(aName, structure.getParts() .findFileByExtension(PlatypusFiles.JAVASCRIPT_EXTENSION)); onSuccess.accept(structure); }//from w ww .j ava 2 s.co m }, onFailure); } } catch (Exception ex) { if (onFailure != null) { onFailure.accept(ex); } } }, onFailure); return null; } else { ModuleStructureRequest.Response structureResp = requestModuleStructure(aName, null, null, null); ModuleStructure structure = new ModuleStructure(); JSObject jsStructure = (JSObject) aSpace.parseJson(structureResp.getJson()); readCommons(jsStructure, structure); JSObject jsParts = (JSObject) jsStructure.getMember(STRUCTURE_PROP_NAME); int partsLength = JSType.toInteger(jsParts.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < partsLength; i++) { String resourceName = JSType.toString(jsParts.getSlot(i)); File synced = getResource(resourceName, aSpace, null, null); structure.getParts().addFile(synced); } id2files.put(aName, structure.getParts().findFileByExtension(PlatypusFiles.JAVASCRIPT_EXTENSION)); return structure; } }
From source file:com.eas.client.RemoteModulesProxy.java
private void readCommons(JSObject jsStructure, ModuleStructure structure) { JSObject jsClientDependencies = (JSObject) jsStructure.getMember(CLIENT_DEPENDENCIES_PROP_NAME); int clientDepsLength = JSType.toInteger(jsClientDependencies.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < clientDepsLength; i++) { String dep = JSType.toString(jsClientDependencies.getSlot(i)); structure.getClientDependencies().add(dep); }/*from w w w . jav a 2 s.co m*/ JSObject jsQueryDependencies = (JSObject) jsStructure.getMember(QUERY_DEPENDENCIES_PROP_NAME); int queryDepsLength = JSType.toInteger(jsQueryDependencies.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < queryDepsLength; i++) { String dep = JSType.toString(jsQueryDependencies.getSlot(i)); structure.getQueryDependencies().add(dep); } JSObject jsServerDependencies = (JSObject) jsStructure.getMember(SERVER_DEPENDENCIES_PROP_NAME); int serverDepsLength = JSType.toInteger(jsServerDependencies.getMember(LENGTH_PROP_NAME)); for (int i = 0; i < serverDepsLength; i++) { String dep = JSType.toString(jsServerDependencies.getSlot(i)); structure.getServerDependencies().add(dep); } }
From source file:com.eas.client.RemoteServerModulesProxy.java
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);// w ww. j a va 2 s. c om } boolean permitted = JSType.toBoolean(jsProxy.getMember(CREATE_MODULE_RESPONSE_IS_PERMITTED_PROP)); return new ServerModuleInfo(aModuleName, functions, permitted); }
From source file:com.eas.client.threetier.json.FieldsJSONReader.java
public static void readFields(JSObject pa, Fields aFields) { int length = JSType.toInteger(pa.getMember("length")); for (int i = 0; i < length; i++) { JSObject po = (JSObject) pa.getSlot(i); assert po != null; String name = JSType.toString(po.getMember(NAME_PROP_NAME)); String desc = JSType.toString(po.getMember(DESCRIPTION_PROP_NAME)); String type = po.hasMember(TYPE_PROP_NAME) && po.getMember(TYPE_PROP_NAME) != null ? JSType.toString(po.getMember(TYPE_PROP_NAME)) : null;/*from ww w . j a va 2 s. c om*/ boolean pk = JSType.toBoolean(po.getMember(PK_PROP_NAME)); boolean nullable = JSType.toBoolean(po.getMember(NULLABLE_PROP_NAME)); Field f = aFields instanceof Parameters ? new Parameter(name) : new Field(name); f.setDescription(desc); f.setType(type); f.setPk(pk); f.setNullable(nullable); aFields.add(f); } }
From source file:io.lightlink.output.JSONResponseStream.java
License:Open Source License
@Override public synchronized void writeFullObjectToArray(Object value) { beginIfNeeded();//from www . j a v a2 s. c om comma(); if (value != null && value instanceof jdk.nashorn.internal.runtime.ScriptObject) { ScriptObject so = (ScriptObject) value; if (so.isArray()) { writeArrayStart(); int length = ((Number) so.get("length")).intValue(); for (int i = 0; i < length; i++) { writeFullObjectToArray(genericDateConvert(so.get(i))); } writeArrayEnd(); } else { writeObjectStart(); for (Object key : so.keySet()) { writeProperty("" + key, genericDateConvert(so.get(key))); } writeObjectEnd(); } return; } else if (value != null && value instanceof jdk.nashorn.api.scripting.JSObject) { JSObject jsObject = (JSObject) value; if (jsObject.isArray()) { writeArrayStart(); int length = ((Number) jsObject.getMember("length")).intValue(); for (int i = 0; i < length; i++) { writeFullObjectToArray(genericDateConvert(jsObject.getSlot(i))); } writeArrayEnd(); } else { writeObjectStart(); for (String key : jsObject.keySet()) { writeProperty(key, genericDateConvert(jsObject.getMember(key))); } writeObjectEnd(); } return; } else if (value != null && value instanceof jdk.nashorn.internal.objects.NativeArray) { NativeArray array = (NativeArray) value; value = array.asObjectArray(); } List list = new ArrayList(); value = handlePrimitiveArrays(value, list); if (value instanceof Map) { writeObjectStart(); Map<Object, Object> map = (Map<Object, Object>) value; if (value instanceof BeanMap) { for (Map.Entry<Object, Object> entry : map.entrySet()) { if (!"class".equals(entry.getKey())) { writeProperty(entry.getKey() + "", entry.getValue()); } } } else { for (Map.Entry<Object, Object> entry : map.entrySet()) { writeProperty(entry.getKey() + "", entry.getValue()); } } writeObjectEnd(); } else if (value instanceof List) { writeArrayStart(); for (Object o : (List) value) { writeFullObjectToArray(o); } writePropertyArrayEnd(); } else if (value instanceof InputStream) { writeInputStream((InputStream) value); } else if (value instanceof Reader) { writeFromReader((Reader) value); } else if (value instanceof Object[]) { writeArrayStart(); for (Object o : (Object[]) value) { writeFullObjectToArray(o); } writeArrayEnd(); } else if (value instanceof Date) { String dateFormat; if (getRunnerContext() != null && getRunnerContext().getTypesFacade().getCustomDatePattern() != null) { TypesFacade tf = getRunnerContext().getTypesFacade(); dateFormat = tf.getCustomDatePattern(); } else dateFormat = DateConverter.UNIVERSAL_DATE_FORMAT; writeString(new SimpleDateFormat(dateFormat).format(value)); } else if (value == null) { writeUnquoted("null"); } else if (value instanceof Number || value instanceof Boolean) { writeUnquoted(value); } else { writeString(value.toString()); } commaNeeded = true; }
From source file:io.stallion.utils.json.JSObjectSerializer.java
License:Open Source License
@Override public void serialize(JSObject value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { if (value.isArray()) { jgen.writeStartArray();//w w w .ja v a 2 s.c o m int i = -1; for (;;) { if (value.hasSlot(++i)) { jgen.writeObject(value.getSlot(i)); } else { break; } } jgen.writeEndArray(); } else { jgen.writeStartObject(); for (String key : value.keySet()) { jgen.writeObjectField(key, value.getMember(key)); } jgen.writeEndObject(); } }