/** * Parse Json Response from Alfresco REST API to create a process Definition Object. * * @param json : json response that contains data from the repository * @return ProcessDefinition Object */ @SuppressWarnings("unchecked") public static Process parseJson(Map<String, Object> json) { ProcessImpl process = new ProcessImpl(); // Public Properties process.identifier = JSONConverter.getString(json, OnPremiseConstant.ID_VALUE); String definitionIdentifier = JSONConverter.getString(json, OnPremiseConstant.DEFINITIONURL_VALUE); process.definitionIdentifier = definitionIdentifier.replace(SUFFIX_WORKFLOW_DEFINITION, ""); process.key = JSONConverter.getString(json, OnPremiseConstant.NAME_VALUE); process.name = JSONConverter.getString(json, OnPremiseConstant.TITLE_VALUE); process.priority = JSONConverter.getInteger(json, OnPremiseConstant.PRIORITY_VALUE).intValue(); process.description = JSONConverter.getString(json, OnPremiseConstant.MESSAGE_VALUE); // PARSE DATES String date = JSONConverter.getString(json, OnPremiseConstant.STARTDATE_VALUE); GregorianCalendar g = new GregorianCalendar(); SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.FORMAT_3, Locale.getDefault()); if (date != null) { g.setTime(DateUtils.parseDate(date, sdf)); process.startedAt = g; } date = JSONConverter.getString(json, OnPremiseConstant.ENDDATE_VALUE); if (date != null) { g = new GregorianCalendar(); g.setTime(DateUtils.parseDate(date, sdf)); process.endedAt = g; } // PARSE INITIATOR Map<String, Object> initiator = (Map<String, Object>) json.get(OnPremiseConstant.INITIATOR_VALUE); Person p = PersonImpl.parseJson(initiator); process.initiatorIdentifier = p.getIdentifier(); // EXTRA PROPERTIES process.data = new HashMap<String, Serializable>(); process.data.put(OnPremiseConstant.INITIATOR_VALUE, p); date = JSONConverter.getString(json, OnPremiseConstant.DUEDATE_VALUE); if (date != null) { g = new GregorianCalendar(); g.setTime(DateUtils.parseDate(date, sdf)); process.dueAt = g; } process.data.put(OnPremiseConstant.DUEDATE_VALUE, g); process.data.put( OnPremiseConstant.DESCRIPTION_VALUE, JSONConverter.getString(json, OnPremiseConstant.DESCRIPTION_VALUE)); process.data.put( OnPremiseConstant.ISACTIVE_VALUE, JSONConverter.getBoolean(json, OnPremiseConstant.ISACTIVE_VALUE)); process.hasAllVariables = true; return process; }
public static Process refreshProcess(Process process, Map<String, Property> properties) { if (process == null) { return null; } if (properties == null) { return process; } ProcessImpl refreshedProcess = new ProcessImpl(); refreshedProcess.identifier = process.getIdentifier(); refreshedProcess.definitionIdentifier = process.getDefinitionIdentifier(); refreshedProcess.key = process.getKey(); refreshedProcess.startedAt = process.getStartedAt(); refreshedProcess.endedAt = process.getEndedAt(); refreshedProcess.description = process.getDescription(); refreshedProcess.priority = process.getPriority(); refreshedProcess.initiatorIdentifier = process.getInitiatorIdentifier(); refreshedProcess.name = process.getName(); refreshedProcess.variables = properties; refreshedProcess.hasAllVariables = true; return refreshedProcess; }
public static Process parsePublicAPIJson(Map<String, Object> json) { ProcessImpl process = new ProcessImpl(); process.identifier = JSONConverter.getString(json, PublicAPIConstant.ID_VALUE); process.definitionIdentifier = JSONConverter.getString(json, PublicAPIConstant.PROCESSDEFINITIONID_VALUE); process.key = JSONConverter.getString(json, PublicAPIConstant.PROCESSDEFINITIONKEY_VALUE); process.initiatorIdentifier = JSONConverter.getString(json, PublicAPIConstant.STARTUSERID_VALUE); GregorianCalendar g = new GregorianCalendar(); SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.FORMAT_3, Locale.getDefault()); String startedAt = JSONConverter.getString(json, PublicAPIConstant.STARTEDAT_VALUE); if (startedAt != null) { g.setTime(DateUtils.parseDate(startedAt, sdf)); process.startedAt = g; } String endedAt = JSONConverter.getString(json, PublicAPIConstant.ENDEDAT_VALUE); if (endedAt != null) { g = new GregorianCalendar(); g.setTime(DateUtils.parseDate(endedAt, sdf)); process.endedAt = g; } process.hasAllVariables = false; // EXTRA PROPERTIES process.data = new HashMap<String, Serializable>(); if (json.containsKey(PublicAPIConstant.DURATIONINMS_VALUE)) { process.data.put( PublicAPIConstant.DURATIONINMS_VALUE, JSONConverter.getInteger(json, PublicAPIConstant.DURATIONINMS_VALUE).intValue()); } process.data.put( PublicAPIConstant.STARTACTIVITYID_VALUE, JSONConverter.getString(json, PublicAPIConstant.STARTACTIVITYID_VALUE)); process.data.put( PublicAPIConstant.ENDACTIVITYID_VALUE, JSONConverter.getString(json, PublicAPIConstant.ENDACTIVITYID_VALUE)); process.data.put( PublicAPIConstant.COMPLETED_VALUE, JSONConverter.getBoolean(json, PublicAPIConstant.COMPLETED_VALUE)); process.data.put( PublicAPIConstant.DELETEREASON_VALUE, JSONConverter.getString(json, PublicAPIConstant.DELETEREASON_VALUE)); if (json.containsKey(PublicAPIConstant.PROCESSVARIABLES_VALUE)) { ArrayList<Map<String, Object>> jo = (ArrayList<Map<String, Object>>) json.get(PublicAPIConstant.PROCESSVARIABLES_VALUE); for (Map<String, Object> item : jo) { if (item.containsKey(PublicAPIConstant.NAME_VALUE) && PROP_WORKFLOW_PRIORITY_ENCODED.equals(item.get(PublicAPIConstant.NAME_VALUE))) { process.priority = JSONConverter.getInteger(item, PublicAPIConstant.VALUE).intValue(); } if (item.containsKey(PublicAPIConstant.NAME_VALUE) && PROP_WORKFLOW_DESCRIPTION_ENCODED.equals(item.get(PublicAPIConstant.NAME_VALUE))) { process.description = JSONConverter.getString(item, PublicAPIConstant.VALUE); } if (item.containsKey(PublicAPIConstant.NAME_VALUE) && PROP_WORKFLOW_DUE_DATE_ENCODED.equals(item.get(PublicAPIConstant.NAME_VALUE))) { String dueDateValue = JSONConverter.getString(item, PublicAPIConstant.VALUE); if (dueDateValue != null) { g = new GregorianCalendar(); g.setTime(DateUtils.parseDate(dueDateValue, sdf)); process.dueAt = g; } } } process.hasAllVariables = true; } return process; }