<commit_before>﻿using System;
using sones.GraphDB.Expression;
using System.Collections.Generic;
using System.IO;
using sones.GraphDB.Request.Insert;

namespace sones.GraphDB.Request
{
    /// <summary>
    /// The definition of an edge.
    /// </summary>
    public sealed class EdgePredefinition: IPropertyProvider
    {
        #region data

        /// <summary>
        /// </summary>
        public String EdgeName { get; private set; }

        /// <summary>
        /// The comment for this edge definition.
        /// </summary>
        public string Comment { get; private set; }

        /// <summary>
        /// The expressions, that defines the vertices where to connect to.
        /// </summary>
        public IEnumerable<IExpression> Expressions { get { return _expressions; } }
        private HashSet<IExpression> _expressions;

        /// <summary>
        /// The IDs of the vertices where to connect to.
        /// </summary>
        public IEnumerable<long> VertexIDs { get { return _ids; } }
        private HashSet<long> _ids;


        /// <summary>
        /// The well defined properties of a vertex.
        /// </summary>
        public IDictionary<String, IComparable> StructuredProperties { get { return _structured; } }
        private Dictionary<String, IComparable> _structured;

        /// <summary>
        /// The unstructured part of a vertex.
        /// </summary>
        public IDictionary<String, Object> UnstructuredProperties { get { return _unstructured; } }
        private Dictionary<String, Object> _unstructured;

        /// <summary>
        /// The properties where the user does not know if it is structured or not.
        /// </summary>
        public IDictionary<String, Object> UnknownProperties { get { return _unknown; } }
        private Dictionary<String, Object> _unknown;

        /// <summary>
        /// The edges contained by this hyper edge.
        /// </summary>
        public IEnumerable<EdgePredefinition> ContainedEdges { get { return _edges; } }
        private List<EdgePredefinition> _edges;

        #endregion

        #region constructor

        /// <summary>
        /// Creates a new instance of EdgeDefinition.
        /// </summary>
        /// <param name="myEdgeName">The name of the edge.</param>
        public EdgePredefinition(String myEdgeName)
        {
            EdgeName = myEdgeName;
        }

        #endregion

        #region fluent

        /// <summary>
        /// Adds a new structured property<commit_msg>fix build<commit_after>﻿using System;
using sones.GraphDB.Expression;
using System.Collections.Generic;
using System.IO;
using sones.GraphDB.Request.Insert;

namespace sones.GraphDB.Request
{
    /// <summary>
    /// The definition of an edge.
    /// </summary>
    public sealed class EdgePredefinition: IPropertyProvider
    {
        #region data

        /// <summary>
        /// </summary>
        public String EdgeName { get; private set; }

        /// <summary>
        /// The comment for this edge definition.
        /// </summary>
        public string Comment { get; private set; }

        /// <summary>
        /// The expressions, that defines the vertices where to connect to.
        /// </summary>
        public IEnumerable<IExpression> Expressions { get { return _expressions; } }
        private HashSet<IExpression> _expressions;

        /// <summary>
        /// The IDs of the vertices where to connect to.
        /// </summary>
        public IEnumerable<long> VertexIDs { get { return _ids; } }
        private HashSet<long> _ids;


        /// <summary>
        /// The well defined properties of a vertex.
        /// </summary>
        public IDictionary<String, IComparable> StructuredProperties { get { return _structured; } }
        private Dictionary<String, IComparable> _structured;

        /// <summary>
        /// The unstructured part of a vertex.
        /// </summary>
        public IDictionary<String, Object> UnstructuredProperties { get { return _unstructured; } }
        private Dictionary<String, Object> _unstructured;

        /// <summary>
        /// The properties where the user does not know if it is structured or not.
        /// </summary>
        public IDictionary<String, Object> UnknownProperties { get { return _unknown; } }
        private Dictionary<String, Object> _unknown;

        /// <summary>
        /// The edges contained by this hyper edge.
        /// </summary>
        public IEnumerable<EdgePredefinition> ContainedEdges { get { return _edges; } }
        private List<EdgePredefinition> _edges;

        #endregion

        #region constructor

        /// <summary>
        /// Creates a new instance of EdgeDefinition.
        /// </summary>
        /// <param name="myEdgeName">The name of the edge.</param>
        public EdgePredefinition(String myEdgeName)
        {
            EdgeName = myEdgeName;
        }

        /// <summary>
        /// Creates a new instance of EdgeDefinition.
        /// </summary>
        /// <remarks>Use this constructor, if a contained edge is to be created.</remarks>
        public EdgePredefinition() { }

        #endregion

        #region fluent

        /// <summary>
        /// Adds a new structured property
{'fraction_non_alphanumeric': 0.10957083175085454, 'fraction_numerical': 0.0, 'mean_word_length': 1.9457494407158837, 'pattern_counts': {'":': 0, '<': 77, '<?xml version=': 0, '>': 77, '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': '3866052', 'n_tokens_mistral': 1344, 'n_tokens_neox': 1311, 'n_words': 429}