<commit_before>package cz.zcu.kiv.jop.strategy;

import cz.zcu.kiv.jop.context.PopulatingContext;
import cz.zcu.kiv.jop.property.Property;

/**
 * The common interface for all populating strategies for properties. The strategy is applied to
 * some property and it may populate some value into that property or enqueue class into populating
 * context to populate. Strategies can be used in combination with class providers or instance
 * matchers.
 *
 * @author Mr.FrAnTA
 * @since 1.0.0
 */
public interface PopulatingStrategy {

  /**
   * Applies populating strategy to given property. It may populate some value into property or
   * enqueue class into populating context to populate.
   *
   * @param property the property on which will be applied this populating strategy.
   * @param context the populating context which contains already populated (generated) objects
   *          which may be obtained; also supports enqueuing classes for population.
   * @throws PopulatingStrategyException If some error occurs during applying of populating strategy
   *           to given property.
   */
  public void applyStrategy(Property<?> property, PopulatingContext context) throws PopulatingStrategyException;
<commit_msg>#81 - Added helper method to populating strategy.<commit_after>package cz.zcu.kiv.jop.strategy;

import cz.zcu.kiv.jop.context.PopulatingContext;
import cz.zcu.kiv.jop.property.Property;

/**
 * The common interface for all populating strategies for properties. The strategy is applied to
 * some property and it may populate some value into that property or enqueue class into populating
 * context to populate. Strategies can be used in combination with class providers or instance
 * matchers.
 *
 * @author Mr.FrAnTA
 * @since 1.0.0
 */
public interface PopulatingStrategy {

  /**
   * Returns information whether populating strategy may be {@link #applyStrategy applied} to given
   * property.
   *
   * @param property the property to check.
   * @return <code>true</code> if populating strategy may be {@link #applyStrategy applied} to given
   *         property; <code>false</code> otherwise.
   */
  public boolean supports(Property<?> property);

  /**
   * Applies populating strategy to given property. It may populate some value into property or
   * enqueue class into populating context to populate.
   *
   * @param property the property on which will be applied this populating strategy.
   * @param context the populating context which contains already populated (generated) objects
   *          which may be obtained; also supports enqueuing classes for population.
   * @throws PopulatingStrategyException If some error occurs during applying of populating strategy
   *           to given property.
   */
  public void applyStrategy(Property<?> property, PopulatingContext context) throws PopulatingStrategyException;

{'fraction_non_alphanumeric': 0.06550522648083623, 'fraction_numerical': 0.0027874564459930314, 'mean_word_length': 3.9076923076923076, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5528346', 'n_tokens_mistral': 722, 'n_tokens_neox': 707, 'n_words': 312}