<commit_before>#ifndef IDENTIFIERRANGE_H
#define IDENTIFIERRANGE_H

#include "Kernel_global.h"
#include <QVector>

namespace Ilwis {

class NamedIdentifier;

class KERNELSHARED_EXPORT IndexedIdentifierRange : public ItemRange
{
public:
    IndexedIdentifierRange();

    bool contains(const QString& name) const;
    bool isValid() const;
    bool operator==(const IndexedIdentifierRange& range);
    void remove(const QString& nm);
    Range *clone() const;
    SPDomainItem item(quint32 index) const;
    SPDomainItem item(const QString &nam) const;
    void add(DomainItem *item);
    QString toString() const;

    QString value(quint32 index) const;
    quint32 count() const;
    void count(quint32 nr);


private:
   SPIndexedIdentifier _start;
   quint32 _count;
};

class KERNELSHARED_EXPORT NamedIdentifierRange : public ItemRange
{
public:
    NamedIdentifierRange();
    ~NamedIdentifierRange();

    bool contains(const QString& name) const;
    bool isValid() const;
    void add(DomainItem *item);
    void remove(const QString& item);
    NamedIdentifierRange& operator<<(const QString& itemdef);
    bool operator==(const ItemRange& range) const;

    QString value(quint32 index) const;
    SPDomainItem item(quint32 index) const;
    SPDomainItem item(const QString &nam) const;
    quint32 count() const;
    Range *clone() const;

    QString toString() const;

private:
    QHash<QString, SPNamedIdentifier> _items;
    QVector<SPNamedIdentifier> _indexes;
};

class ThematicRange : public NamedIdentifierRange {
public:
    ThematicRange();
    ~ThematicRange() {}
    ThematicRange& operator<<(const QString& itemdef);
};
}

#endif // IDENTIFIERRANGE_H
<commit_msg>added export<commit_after>#ifndef IDENTIFIERRANGE_H
#define IDENTIFIERRANGE_H

#include "Kernel_global.h"
#include <QVector>

namespace Ilwis {

class NamedIdentifier;

class KERNELSHARED_EXPORT IndexedIdentifierRange : public ItemRange
{
public:
    IndexedIdentifierRange();

    bool contains(const QString& name) const;
    bool isValid() const;
    bool operator==(const IndexedIdentifierRange& range);
    void remove(const QString& nm);
    Range *clone() const;
    SPDomainItem item(quint32 index) const;
    SPDomainItem item(const QString &nam) const;
    void add(DomainItem *item);
    QString toString() const;

    QString value(quint32 index) const;
    quint32 count() const;
    void count(quint32 nr);


private:
   SPIndexedIdentifier _start;
   quint32 _count;
};

class KERNELSHARED_EXPORT NamedIdentifierRange : public ItemRange
{
public:
    NamedIdentifierRange();
    ~NamedIdentifierRange();

    bool contains(const QString& name) const;
    bool isValid() const;
    void add(DomainItem *item);
    void remove(const QString& item);
    NamedIdentifierRange& operator<<(const QString& itemdef);
    bool operator==(const ItemRange& range) const;

    QString value(quint32 index) const;
    SPDomainItem item(quint32 index) const;
    SPDomainItem item(const QString &nam) const;
    quint32 count() const;
    Range *clone() const;

    QString toString() const;

private:
    QHash<QString, SPNamedIdentifier> _items;
    QVector<SPNamedIdentifier> _indexes;
};

class KERNELSHARED_EXPORT ThematicRange : public NamedIdentifierRange {
public:
    ThematicRange();
    ~ThematicRange() {}
    ThematicRange& operator<<(const QString& itemdef);
};
}

#endif // IDENTIFIERRANGE_H

{'fraction_non_alphanumeric': 0.09478952016485134, 'fraction_numerical': 0.009420076538121873, 'mean_word_length': 4.5252032520325205, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 9, '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': '3821069', 'n_tokens_mistral': 1071, 'n_tokens_neox': 1041, 'n_words': 284}