protected void checkMissingProperties(Class<?> type, Object source, Map<String, Object> map) { Set<String> missingProperties = JSON.checkMissingProperties(type, map); if (!missingProperties.isEmpty()) { for (String p : missingProperties) { if (p.equals("$") || p.endsWith(".$")) { continue; } throw new IllegalStateException("Invalid property '" + missingProperties.iterator().next() + "' at '" + source + "'"); } } }
protected final <T extends MetaObj> T decodeJsonMap(Map map, Class<T> type) { if(map.isEmpty()) { return null; } Set<String> missingProperties = JSON.checkMissingProperties(type, map); if(!missingProperties.isEmpty()) { for(String p : missingProperties) { if(p.equals("$") || p.endsWith(".$")) { continue; } throw new IllegalStateException("Invalid property '" + missingProperties.iterator().next() + "'"); } } return (T)Converts.toBean(map, type); }