<commit_before>package no.priv.bang.modeling.modelstore;

import java.util.Collection;
import java.util.UUID;

public interface PropertysetManager {

    Propertyset createPropertyset();

    Propertyset findPropertyset(UUID id);

    Collection<Propertyset> listAllAspects();

    Collection<Propertyset> findObjectsOfAspect(Propertyset car);

}<commit_msg>Added javadoc to the PropertysetManager interface.<commit_after>package no.priv.bang.modeling.modelstore;

import java.util.Collection;
import java.util.UUID;

/**
 * An interface that defines the access to all {@link Propertyset} instances
 * in memory.
 *
 * This interface can be used to create new propertysets, and it can be used
 * to retrieve existing propertysets.
 *
 * @author <NAME>
 *
 */
public interface PropertysetManager {

    /**
     * Create a new propertyset without id.
     *
     * @return a {@link PropertySet} without an id property set
     */
    Propertyset createPropertyset();

    /**
     * Return a propertyset identified by an {@link UUID}, or create a
     * new propertyset with the id set if none can be found.
     *
     * A typical use case for creating a new propertyset with an id,
     * is when parsing a file containing a UUID reference.  In that case
     * the propertyset is initially created and then later filled out
     * with parsed data.
     *
     * @param id identifying a {@link Propertyset}
     * @return a {@link Propertyset} with a property "id" containing the id parameter
     */
    Propertyset findPropertyset(UUID id);

    /**
     * Find all "aspects" that are present in memory.
     *
     * An aspect is a {@link Propertyset} holding property definitions (name
     * and type of the property) of a propertyset.  The aspect can be used
     * to add more semantics to a propertyset than is actually found on on
     * the propertyset instances.
     *
     * Aspects have inheritance.
     *
     * @return a collection of {@link Propertyset} instances holding propertyset descriptions
     */
    Collection<Propertyset> listAllAspects();

    /**
     * Find all propertysets that confirm to an aspect (or, to have had
     * an aspect applied to them.  I haven't decided on the terminology
     * here).
     *
     * The method will list both propertyset matching a particular
     * aspect, and the aspects that form its supertypes.
     *
     * @param aspect A {@link Propertyset} containing a propertyset definition
     * @return the propertysets in memory that conform to the aspect definition
     */
    Collection<Propertyset> findObjectsOfAspect(Propertyset aspect);

}
{'fraction_non_alphanumeric': 0.07268553940321347, 'fraction_numerical': 0.0, 'mean_word_length': 3.111635220125786, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, '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': '1378931', 'n_tokens_mistral': 692, 'n_tokens_neox': 677, 'n_words': 289}