JType (String nodeName, JsonNode node, JsonNode parent, JClassContainer jClassContainer, Schema schema) { var fromCache = myRuleFactory.getTypeFromCache(nodeName, node); if (fromCache != null) { return fromCache; } JType result = myRuleFactory.getComplexTypeRule().apply(nodeName, node, parent, jClassContainer.getPackage(), schema); if (result == null) { result = super.apply(nodeName, node, parent, jClassContainer, schema); } if (result != null){ myRuleFactory.storeTypeInCache(nodeName, node, result); } return result; }