in src/main/java/software/amazon/cloudformation/resource/ResourceTypeSchema.java [259:278]
public static void removeProperty(final PublicJSONPointer property, final JSONObject resourceModel) {
List<String> refTokens = property.getRefTokens();
if (refTokens.size() > 0) {
final String key = refTokens.get(refTokens.size() - 1);
try {
// if size is more than one, fetch parent object/array of key to remove so that
// we can remove
if (refTokens.size() > 1) {
// use sublist to specify to point at the parent object
final JSONPointer parentObjectPointer = new JSONPointer(refTokens.subList(0, refTokens.size() - 1));
final JSONObject parentObject = (JSONObject) parentObjectPointer.queryFrom(resourceModel);
parentObject.remove(key);
} else {
resourceModel.remove(key);
}
} catch (JSONPointerException | NumberFormatException e) {
// do nothing, as this indicates the model does not have a value for the pointer
}
}
}