/// <summary> /// Creates a ComplexProperty using ComplexProperty from prereq command /// </summary> /// <param name="prereq"></param> /// <param name="property">This must be a valid ComplexConceptualProperty.</param> /// <param name="isPartial"></param> internal CreateFragmentComplexPropertyCommand(CreateFragmentComplexPropertyCommand prereq, ComplexConceptualProperty property) : base(PrereqId) { ValidatePrereqCommand(prereq); CommandValidation.ValidateConceptualProperty(property); _property = property; _mode = Mode.ComplexProperty; AddPreReqCommand(prereq); }
/// <summary> /// Creates a ScalarProperty using ComplexProperty from prereq command /// </summary> /// <param name="prereq"></param> /// <param name="property">This must be a valid ComplexConceptualProperty.</param> internal CreateFragmentScalarPropertyCommand(CreateFragmentComplexPropertyCommand prereq, Property property, Property tableColumn) { ValidatePrereqCommand(prereq); CommandValidation.ValidateConceptualProperty(property); CommandValidation.ValidateTableColumn(tableColumn); Property = property; TableColumn = tableColumn; ModeValue = Mode.ComplexProperty; AddPreReqCommand(prereq); }
protected override void InvokeInternal(CommandProcessorContext cpc) { Debug.Assert( _mode == Mode.EntityType || _mode == Mode.MappingFragment, "Unknown mode set in CreateFragmentScalarPropertyTreeCommand"); var cp = new CommandProcessor(cpc); CreateFragmentComplexPropertyCommand prereqCmd = null; for (var i = 0; i < _properties.Count; i++) { var property = _properties[i]; var complexConceptualProperty = property as ComplexConceptualProperty; if (complexConceptualProperty != null) { Debug.Assert(i < _properties.Count - 1, "Last property shouldn't be ComplexConceptualProperty"); CreateFragmentComplexPropertyCommand cmd = null; if (prereqCmd == null) { if (_mode == Mode.EntityType) { cmd = new CreateFragmentComplexPropertyCommand(_conceptualEntityType, complexConceptualProperty, _tableColumn); } else { cmd = new CreateFragmentComplexPropertyCommand(_mappingFragment, complexConceptualProperty); } } else { cmd = new CreateFragmentComplexPropertyCommand(prereqCmd, complexConceptualProperty); } prereqCmd = cmd; cp.EnqueueCommand(cmd); } else { Debug.Assert(i == _properties.Count - 1, "This should be the last property"); CreateFragmentScalarPropertyCommand cmd = null; if (prereqCmd == null) { if (_mode == Mode.EntityType) { cmd = new CreateFragmentScalarPropertyCommand(_conceptualEntityType, property, _tableColumn); } else { cmd = new CreateFragmentScalarPropertyCommand(_mappingFragment, property, _tableColumn); } } else { cmd = new CreateFragmentScalarPropertyCommand(prereqCmd, property, _tableColumn); } cp.EnqueueCommand(cmd); cp.Invoke(); _createdProperty = cmd.ScalarProperty; return; } } }
/// <summary> /// Creates a ComplexProperty using ComplexProperty from prereq command /// </summary> /// <param name="prereq"></param> /// <param name="property">This must be a valid ComplexConceptualProperty.</param> /// <param name="isPartial"></param> internal CreateFragmentComplexPropertyCommand(CreateFragmentComplexPropertyCommand prereq, ComplexConceptualProperty property) : base(PrereqId) { ValidatePrereqCommand(prereq); CommandValidation.ValidateConceptualProperty(property); _property = property; _mode = Mode.ComplexProperty; AddPreReqCommand(prereq); }
/// <summary> /// Creates a ScalarProperty using ComplexProperty from prereq command /// </summary> /// <param name="prereq"></param> /// <param name="property">This must be a valid ComplexConceptualProperty.</param> internal CreateFragmentScalarPropertyCommand(CreateFragmentComplexPropertyCommand prereq, Property property, Property tableColumn) { ValidatePrereqCommand(prereq); CommandValidation.ValidateConceptualProperty(property); CommandValidation.ValidateTableColumn(tableColumn); Property = property; TableColumn = tableColumn; ModeValue = Mode.ComplexProperty; AddPreReqCommand(prereq); }
protected override void InvokeInternal(CommandProcessorContext cpc) { Debug.Assert( _mode == Mode.EntityType || _mode == Mode.MappingFragment, "Unknown mode set in CreateFragmentScalarPropertyTreeCommand"); var cp = new CommandProcessor(cpc); CreateFragmentComplexPropertyCommand prereqCmd = null; for (var i = 0; i < _properties.Count; i++) { var property = _properties[i]; var complexConceptualProperty = property as ComplexConceptualProperty; if (complexConceptualProperty != null) { Debug.Assert(i < _properties.Count - 1, "Last property shouldn't be ComplexConceptualProperty"); CreateFragmentComplexPropertyCommand cmd = null; if (prereqCmd == null) { if (_mode == Mode.EntityType) { cmd = new CreateFragmentComplexPropertyCommand(_conceptualEntityType, complexConceptualProperty, _tableColumn); } else { cmd = new CreateFragmentComplexPropertyCommand(_mappingFragment, complexConceptualProperty); } } else { cmd = new CreateFragmentComplexPropertyCommand(prereqCmd, complexConceptualProperty); } prereqCmd = cmd; cp.EnqueueCommand(cmd); } else { Debug.Assert(i == _properties.Count - 1, "This should be the last property"); CreateFragmentScalarPropertyCommand cmd = null; if (prereqCmd == null) { if (_mode == Mode.EntityType) { cmd = new CreateFragmentScalarPropertyCommand(_conceptualEntityType, property, _tableColumn); } else { cmd = new CreateFragmentScalarPropertyCommand(_mappingFragment, property, _tableColumn); } } else { cmd = new CreateFragmentScalarPropertyCommand(prereqCmd, property, _tableColumn); } cp.EnqueueCommand(cmd); cp.Invoke(); _createdProperty = cmd.ScalarProperty; return; } } }