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); }
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; }
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); } } }