コード例 #1
0
        internal void AddTuplesToRelation()
        {
            RelationObject relationObjectToAddTupleTo = relationService.GetRelation(Parent.RelationshipNameForTuple);
            IList<TupleCellObject> tupleCellsToBeAddedToTuple = new List<TupleCellObject>();
            TupleObject tupleToBeAdded = new TupleObject();
            string curSymbol = string.Empty;

            foreach (AttributeObject attr in relationObjectToAddTupleTo.RelationAttributes)
            {
                curSymbol = QueryParser.FindNextSymbol();

                queryService.EnsureCurrentSymbolIsNotAKeyWord(curSymbol);

                string convertedSizeOfCurSymbol = string.Empty;
                TupleCellObject currentTupleCellToAdd = new TupleCellObject();

                ConfirmTupleValueMatchesAttributeType(attr, curSymbol);
                convertedSizeOfCurSymbol = CropValueToSize(attr, curSymbol);

                currentTupleCellToAdd.AttributeAssociatedWithCell = attr;
                currentTupleCellToAdd.Value = convertedSizeOfCurSymbol;

                tupleCellsToBeAddedToTuple.Add(currentTupleCellToAdd);
            }

            if(tupleCellsToBeAddedToTuple.Count != relationObjectToAddTupleTo.RelationAttributes.Count)
            {
                ErrorHandlerSURLY.TupleErrors.NotAllAttributesSatisfied(curSymbol);
            }

            tupleToBeAdded.TupleCells = tupleCellsToBeAddedToTuple;

            relationObjectToAddTupleTo.RelationsTuples.Add(tupleToBeAdded);
        }
コード例 #2
0
        private TupleObject AddTupleExceptForAttributeList2Items(TupleObject currentTuple1, TupleObject currentTuple2)
        {
            TupleObject tupleToReturn = new TupleObject();

            foreach (TupleCellObject tupleCell in currentTuple1.TupleCells)
            {
                tupleToReturn.TupleCells.Add(tupleCell);
            }

            foreach(TupleCellObject tupleCell in currentTuple2.TupleCells)
            {
                if(!this.AttributeList2.Contains(tupleCell.AttributeAssociatedWithCell))
                {
                    tupleToReturn.TupleCells.Add(tupleCell);
                }
            }

            return tupleToReturn;
        }
コード例 #3
0
        private void EnsureTupleMatchesJoinedRelationAttributes(RelationObject joinedRelation, TupleObject tupleToAddToJoinedRelation)
        {
            AttributeObject[] attributesFromJoinedRelation = joinedRelation.RelationAttributes.ToArray();
            TupleCellObject[] tupleCellsFromTupleToAddToJoinedRelation = tupleToAddToJoinedRelation.TupleCells.ToArray();

            for(int i = 0; i < attributesFromJoinedRelation.Length; i++)
            {
                if(attributesFromJoinedRelation[i] != tupleCellsFromTupleToAddToJoinedRelation[i].AttributeAssociatedWithCell)
                {
                    ErrorHandlerSURLY.JoinErrors.JoinAttributesAndTupleAttributesDidNotMatch(this.JoinRelation1, this.JoinRelation2, joinedRelation);
                }
            }
        }