private <T extends PropertyContainer> T setProperties(T primitive, Map<String, Object> properties) { assert primitive != null; if (properties==null || properties.isEmpty()) return primitive; for (Map.Entry<String, Object> prop : properties.entrySet()) { if (prop.getValue()==null) { primitive.removeProperty(prop.getKey()); } else { primitive.setProperty(prop.getKey(), prop.getValue()); } } return primitive; }