<commit_before>package com.structurizr.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.structurizr.PropertyHolder;
import com.structurizr.util.StringUtils;
import com.structurizr.util.Url;

import java.util.*;

/**
 * The base class for elements and relationships.
 */
public abstract class ModelItem implements PropertyHolder {

    private String id = "";
    private String originId = "";
    private Set<String> tags = new LinkedHashSet<>();

    private String url;
    private Map<String, String> properties = new HashMap<>();
    private Set<Perspective> perspectives = new HashSet<>();

    @JsonIgnore
    public abstract String getCanonicalName();

    public abstract Set<String> getDefaultTags();

    /**
     * Gets the ID of this item in the model.
     *
     * @return the ID, as a String
     */
    public String getId() {
        return id;
    }

    void setId(String id) {
        this.id = id;<commit_msg>Default tags are not needed in the JSON representation.<commit_after>package com.structurizr.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.structurizr.PropertyHolder;
import com.structurizr.util.StringUtils;
import com.structurizr.util.Url;

import java.util.*;

/**
 * The base class for elements and relationships.
 */
public abstract class ModelItem implements PropertyHolder {

    private String id = "";
    private String originId = "";
    private Set<String> tags = new LinkedHashSet<>();

    private String url;
    private Map<String, String> properties = new HashMap<>();
    private Set<Perspective> perspectives = new HashSet<>();

    @JsonIgnore
    public abstract String getCanonicalName();

    @JsonIgnore
    public abstract Set<String> getDefaultTags();

    /**
     * Gets the ID of this item in the model.
     *
     * @return the ID, as a String
     */
    public String getId() {
        return id;
    }

    void setId(String id) {
        this.id = id;
{'fraction_non_alphanumeric': 0.1019367991845056, 'fraction_numerical': 0.0, 'mean_word_length': 3.221505376344086, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, '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': '2366566', 'n_tokens_mistral': 554, 'n_tokens_neox': 532, 'n_words': 176}