protected Map<String, Object> getParamsMap(Map<String, String> requestParams) { Map<String, Object> params = new HashMap<>(); String paramsStr = requestParams.get("params"); if (paramsStr == null) return params; String[] entries = paramsStr.split(","); for (String entry : entries) { String[] parts = entry.split(":"); if (parts.length != 2) { log.warn("Invalid parameter: {}", entry); return params; } String name = parts[0]; String value = parts[1]; EntityLoadInfo info = EntityLoadInfo.parse(value); if (info != null) { Entity entity = loadEntityInstance(info); if (entity != null) params.put(name, entity); } else if (Boolean.TRUE.toString().equals(value) || Boolean.FALSE.toString().equals(value)) { params.put(name, BooleanUtils.toBoolean(value)); } else { params.put(name, value); } } return params; }
EntityLoadInfo info = EntityLoadInfo.parse(value); if (info == null) { if ("true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) {
public InstanceRef parseInstanceRefAndRegister(String fullId) throws InstantiationException, IllegalAccessException { EntityLoadInfo loadInfo; if (!fullId.startsWith("NEW-")) { loadInfo = EntityLoadInfo.parse(fullId); if (loadInfo == null) { throw new RuntimeException("Cannot parse id: " + fullId); } InstanceRef existingRef = instanceRefs.get(loadInfo.getMetaClass().getName() + "-" + loadInfo.getId().toString()); if (existingRef != null) { return existingRef; } } else { int idDashIndex = StringUtils.ordinalIndexOf(fullId, "-", 2); if (idDashIndex == -1) { String entityName = fullId.substring("NEW-".length()); String generatedId = generateId(entityName); fullId = fullId + "-" + generatedId; } loadInfo = EntityLoadInfo.parse(fullId); if (loadInfo == null) { throw new RuntimeException("Cannot parse id: " + fullId); } } if (loadInfo.isNewEntity()) newInstanceIds.add(loadInfo.toString()); InstanceRef result = new InstanceRef(loadInfo); instanceRefs.put(loadInfo.getMetaClass().getName() + "-" + loadInfo.getId().toString(), result); return result; }
@Override public Object build(String string) { if (StringUtils.isBlank(string)) return null; EntityLoadInfo info = EntityLoadInfo.parse(string); if (info == null) throw new IllegalArgumentException("Invalid entity info: " + string); LoadContext ctx = new LoadContext(info.getMetaClass()).setId(info.getId()); if (info.getViewName() != null) ctx.setView(info.getViewName()); return ds.load(ctx); } }
protected void openWindow(WindowInfo windowInfo, ExternalLinkContext linkContext) { Map<String, String> requestParams = linkContext.getRequestParams(); App app = linkContext.getApp(); String itemStr = requestParams.get("item"); String openTypeParam = requestParams.get("openType"); OpenType openType = OpenType.NEW_TAB; if (StringUtils.isNotEmpty(openTypeParam)) { try { openType = OpenType.valueOf(openTypeParam); } catch (IllegalArgumentException e) { log.warn("Unknown open type ({}) in request parameters", openTypeParam); } } if (itemStr == null) { app.getWindowManager().openWindow(windowInfo, openType, getParamsMap(requestParams)); } else { EntityLoadInfo info = EntityLoadInfo.parse(itemStr); if (info == null) { log.warn("Invalid item definition: {}", itemStr); } else { Entity entity = loadEntityInstance(info); if (entity != null) app.getWindowManager().openEditor(windowInfo, entity, openType, getParamsMap(requestParams)); else throw new EntityAccessException(); } } }
protected Entity _parseEntity(JSONObject json) { try { String id = json.getString("id"); EntityLoadInfo loadInfo = EntityLoadInfo.parse(id);
@Override public Object convertFromString(Class parameterClass, String paramValueStr) { if (paramValueStr == null) { return null; } else if (String.class.isAssignableFrom(parameterClass)) { return paramValueStr; } else if (Entity.class.isAssignableFrom(parameterClass)) { EntityLoadInfo entityLoadInfo = EntityLoadInfo.parse(paramValueStr); if (entityLoadInfo != null) { return dataManager.load(new LoadContext(entityLoadInfo.getMetaClass()).setId(entityLoadInfo.getId()).setView(View.BASE)); } else { UUID id = UUID.fromString(paramValueStr); return dataManager.load(new LoadContext(parameterClass).setId(id).setView(View.BASE)); } } else { Datatype datatype = Datatypes.get(parameterClass); if (datatype != null) { try { return datatype.parse(paramValueStr); } catch (ParseException e) { throw new ReportingException( String.format("Couldn't read value [%s] with datatype [%s].", paramValueStr, datatype)); } } else { return convertFromStringUnresolved(parameterClass, paramValueStr); } } } }
entityLoadInfo = EntityLoadInfo.parse(idPrimitive.getAsString()); if (entityLoadInfo != null) { resultMetaClass = entityLoadInfo.getMetaClass();
EntityLoadInfo loadInfo = EntityLoadInfo.parse(entityRef); if (loadInfo == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST);
EntityLoadInfo loadInfo = EntityLoadInfo.parse(id); if (loadInfo == null) throw new IllegalArgumentException("Unable to parse ID: " + id);
EntityLoadInfo info = EntityLoadInfo.parse(string); if (info == null) { throw new IllegalArgumentException("Invalid entity info: " + string);
EntityLoadInfo loadInfo = EntityLoadInfo.parse(id); Entity ref = metadata.create(loadInfo.getMetaClass()); ref.setValue("id", loadInfo.getId());