code: public ClientFlakeIdGeneratorConfig getFlakeIdGeneratorConfig(String name) {
          return ConfigUtils.getConfig(configPatternMatcher, getFlakeIdGeneratorConfigMap(), name,
                  ClientFlakeIdGeneratorConfig.class, new BiConsumer<ClientFlakeIdGeneratorConfig, String>() {
                      @Override
                      public void accept(ClientFlakeIdGeneratorConfig flakeIdGeneratorConfig, String name) {
                          flakeIdGeneratorConfig.setName(name);
                      }
                  });
      }
docs: Returns the {@link ClientFlakeIdGeneratorConfig} for the given name, creating
  one if necessary and adding it to the collection of known configurations.
  <p>
  The configuration is found by matching the the configuration name
  pattern to the provided {@code name} without the partition qualifier
  (the part of the name after {@code '@'}).
  If no configuration matches, it will create one by cloning the
  {@code "default"} configuration and add it to the configuration
  collection.
  <p>
  This method is intended to easily and fluently create and add
  configurations more specific than the default configuration without
  explicitly adding it by invoking {@link #addFlakeIdGeneratorConfig(ClientFlakeIdGeneratorConfig)}.
  <p>
  Because it adds new configurations if they are not already present,
  this method is intended to be used before this config is used to
  create a hazelcast instance. Afterwards, newly added configurations
  may be ignored.
  
  @param name name of the flake ID generator config
  @return the cache configuration
  @throws ConfigurationException if ambiguous configurations are found
  @see com.hazelcast.partition.strategy.StringPartitioningStrategy#getBaseName(java.lang.String)
  @see #setConfigPatternMatcher(ConfigPatternMatcher)
  @see #getConfigPatternMatcher()