private Map<String, JFieldVar> removeFieldsExcludedFromEqualsAndHashCode(Map<String, JFieldVar> fields, JsonNode node) {
    Map<String, JFieldVar> filteredFields = new HashMap<>(fields);

    JsonNode properties = node.get("properties");

    if (properties != null) {
      if (node.has("excludedFromEqualsAndHashCode")) {
        JsonNode excludedArray = node.get("excludedFromEqualsAndHashCode");

        for (Iterator<JsonNode> iterator = excludedArray.elements(); iterator.hasNext(); ) {
          String excludedPropertyName = iterator.next().asText();
          JsonNode excludedPropertyNode = properties.get(excludedPropertyName);
          filteredFields.remove(ruleFactory.getNameHelper().getPropertyName(excludedPropertyName, excludedPropertyNode));
        }
      }

      for (Iterator<Map.Entry<String, JsonNode>> iterator = properties.fields(); iterator.hasNext(); ) {
        Map.Entry<String, JsonNode> entry = iterator.next();
        String propertyName = entry.getKey();
        JsonNode propertyNode = entry.getValue();

        if (propertyNode.has("excludedFromEqualsAndHashCode") &&
            propertyNode.get("excludedFromEqualsAndHashCode").asBoolean()) {
          filteredFields.remove(ruleFactory.getNameHelper().getPropertyName(propertyName, propertyNode));
        }
      }
    }

    return filteredFields;
  }
private Map<String, JFieldVar> removeFieldsExcludedFromEqualsAndHashCode(Map<String, JFieldVar> fields, JsonNode node)