use of org.pentaho.platform.scheduler2.ws.JaxBSafeMap in project pentaho-platform by pentaho.
the class JobParamsAdapter method unmarshal.
public Map<String, ParamValue> unmarshal(JaxBSafeMap safeMap) throws Exception {
Map<String, ParamValue> unsafeMap = null;
try {
unsafeMap = new HashMap<String, ParamValue>();
for (JaxBSafeEntry safeEntry : safeMap.entry) {
ParamValue v = safeEntry.getStringValue();
if (v == null) {
v = safeEntry.getListValue();
}
if (v == null) {
v = safeEntry.getMapValue();
}
unsafeMap.put(safeEntry.key, v);
}
return unsafeMap;
} catch (Throwable t) {
logger.error(t);
}
return null;
}
use of org.pentaho.platform.scheduler2.ws.JaxBSafeMap in project pentaho-platform by pentaho.
the class ComplianceJaxBTest method testJaxbSafeJob.
@Test
public void testJaxbSafeJob() throws JAXBException {
JobAdapter.JaxbSafeJob job = new JobAdapter.JaxbSafeJob();
final Date NOW = new Date();
job.lastRun = NOW;
job.nextRun = NOW;
job.jobName = "testName";
job.jobId = "testId";
job.schedulableClass = "test.schedulable.class";
job.state = Job.JobState.COMPLETE;
job.userName = "testUsername";
HashMap<String, ParamValue> params = new HashMap<String, ParamValue>();
params.put("testStringkey", new StringParamValue("testStringVal"));
JaxBSafeMap safeMap = new JaxBSafeMap(params);
job.jobParams = safeMap;
JobAdapter.JaxbSafeJob unmarshalledJob = JaxBUtil.outin(job, JobAdapter.JaxbSafeJob.class);
Assert.assertEquals(job.lastRun, unmarshalledJob.lastRun);
Assert.assertEquals(job.nextRun, unmarshalledJob.nextRun);
Assert.assertEquals(job.jobName, unmarshalledJob.jobName);
Assert.assertEquals(job.jobId, unmarshalledJob.jobId);
Assert.assertEquals(job.schedulableClass, unmarshalledJob.schedulableClass);
Assert.assertEquals(job.userName, unmarshalledJob.userName);
Assert.assertEquals(job.state, unmarshalledJob.state);
Assert.assertEquals(job.jobTrigger, unmarshalledJob.jobTrigger);
Assert.assertTrue("testStringkey".equals(unmarshalledJob.jobParams.entry.get(0).key));
Assert.assertTrue("testStringVal".equals(unmarshalledJob.jobParams.entry.get(0).getStringValue().toString()));
}
use of org.pentaho.platform.scheduler2.ws.JaxBSafeMap in project pentaho-platform by pentaho.
the class ComplianceJaxBTest method testJaxbSafeMap.
@Test
public void testJaxbSafeMap() throws JAXBException {
HashMap<String, ParamValue> params = new HashMap<String, ParamValue>();
ListParamValue listValue = new ListParamValue();
listValue.add("testListVal0");
listValue.add("testListVal1");
MapParamValue mapValue = new MapParamValue();
mapValue.put("testMapValueKey", "testMapVal");
params.put("testStringkey", new StringParamValue("testStringVal"));
params.put("testListKey", listValue);
params.put("testMapKey", mapValue);
// TreeMap implements java.util.SortedMap; applies a natural ordering of its keys;
Map<String, ParamValue> sortedParams = new TreeMap(params);
List paramsList = java.util.Arrays.asList(sortedParams.keySet().toArray());
JaxBSafeMap map = new JaxBSafeMap(sortedParams);
JaxBSafeMap unmarshalled = JaxBUtil.outin(map, JaxBSafeMap.class, JaxBSafeEntry.class, StringParamValue.class);
Assert.assertEquals("testStringVal", unmarshalled.entry.get(paramsList.indexOf("testStringkey")).getStringValue().toString());
Assert.assertEquals("testListVal0", unmarshalled.entry.get(paramsList.indexOf("testListKey")).getListValue().get(0));
Assert.assertEquals("testMapVal", unmarshalled.entry.get(paramsList.indexOf("testMapKey")).getMapValue().get("testMapValueKey"));
}
Aggregations