code: @Override
      public JDefinedClass apply(String nodeName, JsonNode node, JsonNode parent, JDefinedClass jclass, Schema schema) {
          if (node == null) {
              node = JsonNodeFactory.instance.objectNode();
          }
  
          for (Iterator<String> properties = node.fieldNames(); properties.hasNext(); ) {
              String property = properties.next();
  
              ruleFactory.getPropertyRule().apply(property, node.get(property), node, jclass, schema);
          }
  
          if (ruleFactory.getGenerationConfig().isGenerateBuilders() && !jclass._extends().name().equals("Object")) {
              addOverrideBuilders(jclass, jclass.owner()._getClass(jclass._extends().fullName()));
          }
  
          ruleFactory.getAnnotator().propertyOrder(jclass, node);
  
          return jclass;
      }
docs: Applies this schema rule to take the required code generation steps.
  <p>
  For each property present within the properties node, this rule will
  invoke the 'property' rule provided by the given schema mapper.
  
  @param nodeName
  the name of the node for which properties are being added
  @param node
  the properties node, containing property names and their
  definition
  @param jclass
  the Java type which will have the given properties added
  @return the given jclass