![JAR search and dependency download from the Maven repository](/logo.png)
io.firebus.utils.FirebusDataUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of firebus-core Show documentation
Show all versions of firebus-core Show documentation
Firebus core functionality
package io.firebus.utils;
import java.util.Date;
import java.util.Iterator;
import jdk.nashorn.api.scripting.JSObject;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
import jdk.nashorn.internal.objects.NativeArray;
public class FirebusDataUtil
{
public static DataMap convertJSObjectToDataObject(JSObject jso)
{
DataMap retObj = new DataMap();
if(jso.getClassName().equals("Object"))
{
Iterator it = jso.keySet().iterator();
while(it.hasNext())
{
String key = it.next();
Object childObj = jso.getMember(key);
if(childObj instanceof NativeArray)
childObj = new FirebusJSArray((NativeArray)childObj);
if(childObj instanceof JSObject)
{
JSObject childJSObject = (JSObject)childObj;
if(childJSObject.getClassName().equals("Object"))
{
retObj.put(key, convertJSObjectToDataObject(childJSObject));
}
else if(childJSObject.getClassName().equals("Array"))
{
retObj.put(key, convertJSArrayToDataList(childJSObject));
}
else if(childJSObject.getClassName().equals("Date") && childJSObject instanceof ScriptObjectMirror)
{
ScriptObjectMirror jsDate = (ScriptObjectMirror)childJSObject;
long timestampLocalTime = ((Double) jsDate.callMember("getTime")).longValue();
int timezoneOffsetMinutes = ((Double) jsDate.callMember("getTimezoneOffset")).intValue();
retObj.put(key, new Date(timestampLocalTime + timezoneOffsetMinutes * 60 * 1000));
}
}
else
{
retObj.put(key, childObj);
}
}
}
return retObj;
}
public static DataList convertJSArrayToDataList(JSObject jso)
{
DataList retList = new DataList();
if(jso.getClassName().equals("Array"))
{
Iterator
© 2015 - 2024 Weber Informatics LLC | Privacy Policy