private AccessorsValues combine(AccessorsValues defaults) {
      Boolean combinedChain = chainDeclaredValue;
      Boolean combinedFluent = fluentDeclaredValue;
      Boolean combinedMakeFinal = makeFinalDeclaredValue;
      Collection<String> combinedPrefixes = prefixes;

      if (combinedChain == null && null != defaults.chainDeclaredValue) {
        combinedChain = defaults.chainDeclaredValue;
      }
      if (combinedFluent == null && null != defaults.fluentDeclaredValue) {
        combinedFluent = defaults.fluentDeclaredValue;
      }
      if (combinedMakeFinal == null && null != defaults.makeFinalDeclaredValue) {
        combinedMakeFinal = defaults.makeFinalDeclaredValue;
      }
      if (combinedPrefixes.isEmpty() && !defaults.prefixes.isEmpty()) {
        combinedPrefixes = defaults.prefixes;
      }
      return new AccessorsValues(combinedChain, combinedFluent, combinedMakeFinal, combinedPrefixes);
    }
private AccessorsValues combine(AccessorsValues defaults)