示例#1
0
        public void StoreOutgoingEdge(
            IVertexStore myStore,
            VertexInformation myVertex,
            String myName,
            String myComment,
            bool myIsUserDefined,
            Int64 myCreationDate,
            EdgeMultiplicity myMultiplicity,
            VertexInformation myDefiningType,
            VertexInformation myEdgeType,
            VertexInformation?myInnerEdgeType,  //not mandatory, might be null
            VertexInformation myTarget,
            SecurityToken mySecurity,
            Int64 myTransaction)
        {
            var singleEdges = new Dictionary <Tuple <long, long>, VertexInformation>
            {
                { _EdgeAttributeDotDefiningType, myDefiningType },
                { _EdgeOutgoingEdgeDotSource, myDefiningType },
                { _EdgeOutgoingEdgeDotEdgeType, myEdgeType },
                { _EdgeOutgoingEdgeDotTarget, myTarget }
            };

            if (myMultiplicity == EdgeMultiplicity.MultiEdge)
            {
                singleEdges.Add(_EdgeOutgoingEdgeDotInnerEdgeType, myInnerEdgeType.Value);
            }

            Store(
                myStore,
                myVertex,
                myComment,
                myCreationDate,
                singleEdges,
                null,
                new Dictionary <long, IComparable>
            {
                { (long)AttributeDefinitions.AttributeDotName, myName },
                { (long)AttributeDefinitions.AttributeDotIsUserDefined, myIsUserDefined },
                { (long)AttributeDefinitions.OutgoingEdgeDotMultiplicity, (byte)myMultiplicity },
            },
                null,
                mySecurity,
                myTransaction
                );
        }
示例#2
0
 /// <summary>
 /// Converts EdgeMultiplicity into serializable ServiceEdgeMultiplicity, default: SingleEdge.
 /// </summary>
 /// <param name="myMultiplicity"></param>
 /// <returns></returns>
 public static ServiceEdgeMultiplicity ToServiceEdgeMultiplicity(EdgeMultiplicity myMultiplicity)
 {
     ServiceEdgeMultiplicity multiplicity;
     switch (myMultiplicity)
     {
         case EdgeMultiplicity.MultiEdge:
             multiplicity = ServiceEdgeMultiplicity.MultiEdge;
             break;
         case EdgeMultiplicity.HyperEdge:
             multiplicity = ServiceEdgeMultiplicity.HyperEdge;
             break;
         default:
             multiplicity = ServiceEdgeMultiplicity.SingleEdge;
             break;
     }
     return multiplicity;
 }
示例#3
0
        /// <summary>
        /// Converts EdgeMultiplicity into serializable ServiceEdgeMultiplicity, default: SingleEdge.
        /// </summary>
        /// <param name="myMultiplicity"></param>
        /// <returns></returns>
        internal static ServiceEdgeMultiplicity ToServiceEdgeMultiplicity(EdgeMultiplicity myMultiplicity)
        {
            ServiceEdgeMultiplicity multiplicity;

            switch (myMultiplicity)
            {
            case EdgeMultiplicity.MultiEdge:
                multiplicity = ServiceEdgeMultiplicity.MultiEdge;
                break;

            case EdgeMultiplicity.HyperEdge:
                multiplicity = ServiceEdgeMultiplicity.HyperEdge;
                break;

            default:
                multiplicity = ServiceEdgeMultiplicity.SingleEdge;
                break;
            }
            return(multiplicity);
        }
示例#4
0
        public static void StoreOutgoingEdge(
            IVertexStore myStore,
            VertexInformation myVertex,
            String myName,
            String myComment,
            bool myIsUserDefined,
            Int64 myCreationDate,
            EdgeMultiplicity myMultiplicity,
            VertexInformation myDefiningType,
            VertexInformation myEdgeType,
            VertexInformation? myInnerEdgeType, //not mandatory, might be null
            VertexInformation myTarget,
            SecurityToken mySecurity,
            TransactionToken myTransaction)
        {
            var singleEdges = new Dictionary<Tuple<long, long>, VertexInformation>
                {
                    { _EdgeAttributeDotDefiningType, myDefiningType },
                    { _EdgeOutgoingEdgeDotSource, myDefiningType },
                    { _EdgeOutgoingEdgeDotEdgeType, myEdgeType },
                    { _EdgeOutgoingEdgeDotTarget, myTarget }
                };

            if (myMultiplicity == EdgeMultiplicity.MultiEdge)
            {
                singleEdges.Add(_EdgeOutgoingEdgeDotInnerEdgeType, myInnerEdgeType.Value);
            }

            Store(
                myStore,
                myVertex,
                myComment,
                myCreationDate,
                singleEdges,
                null,
                new Dictionary<long, IComparable>
                {
                    { (long) AttributeDefinitions.AttributeDotName, myName },
                    { (long) AttributeDefinitions.AttributeDotIsUserDefined, myIsUserDefined },
                    { (long) AttributeDefinitions.OutgoingEdgeDotMultiplicity, (byte) myMultiplicity },
                },
                null,
                mySecurity,
                myTransaction
            );
        }
示例#5
0
 /// <summary>
 /// Sets the edge multiplicity of this edge to MultiEdge.
 /// </summary>
 /// <returns>The reference of the current object. (fluent interface).</returns>
 public OutgoingEdgePredefinition SetMultiplicityAsMultiEdge(String myInnerEdgeType = null)
 {
     InnerEdgeType = myInnerEdgeType ?? Edge;
     Multiplicity = EdgeMultiplicity.MultiEdge;
     return this;
 }
示例#6
0
 /// <summary>
 /// Sets the edge multiplicity of this edge to HyperEdge.
 /// </summary>
 /// <returns>The reference of the current object. (fluent interface).</returns>
 public OutgoingEdgePredefinition SetMultiplicityAsHyperEdge()
 {
     InnerEdgeType = null;
     Multiplicity = EdgeMultiplicity.HyperEdge;
     return this;
 }