private static SourceField CreateFileSourceField(IProcessField field, ExpressionObjectBase owner) { var result = new SourceField(owner) { DataType = NodeDataType.File, Name = field.Name, ConnectorOut = { DataType = NodeDataType.File, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = field.SystemName, SystemName = field.SystemName, SubfieldsRetriever = new FileSubfieldsRetriever(SourceFieldSetNames.Item) }; return result; }
private static SourceField CreateSampleSourceField(IProcessField field, ExpressionObjectBase owner) { var result = new SourceField(owner) { DataType = NodeDataType.List, Name = field.Name, ConnectorOut = { DataType = NodeDataType.List, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = string.Format("{0}List", field.SystemName), SystemName = string.Format("{0}List", field.SystemName), SubfieldsRetriever = new SampleSubfieldsRetriever(SourceFieldSetNames.Item) }; return result; }
/// <summary> /// Creates the reverse cross reference source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> /// <exception cref="System.InvalidOperationException">Invalid field type.</exception> private static SourceField CreateReverseCrossReferenceSourceField(IProcessField field, ExpressionObjectBase owner) { if (field.ColumnType == ColumnTypes.ReverseReference) { return new SourceField(owner) { DataType = NodeDataType.ReverseCrossReference, Name = field.Name, ConnectorOut = { DataType = NodeDataType.ReverseCrossReference, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = field.SystemName, SystemName = string.Format("{0}Member", field.SystemName), SubfieldsRetriever = new ReverseCrossReferenceSubfieldsRetriever(field.Id) }; } if (field.ColumnType == ColumnTypes.ReverseMultiReference) { var result = new SourceField(owner) { DataType = NodeDataType.List, Name = field.Name, ConnectorOut = { DataType = NodeDataType.List, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = string.Format("{0}List", field.SystemName), SystemName = string.Format("{0}List", field.SystemName), SubfieldsRetriever = new ReverseCrossReferenceSubfieldsRetriever(field.Id) }; return result; } throw new InvalidOperationException("Invalid field type."); }
/// <summary> /// Creates the result source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateResultSourceField(IProcessField field, ExpressionObjectBase owner) { var result = new SourceField(owner) { DataType = NodeDataType.Result, Name = field.Name, ConnectorOut = { DataType = NodeDataType.Result, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = field.SystemName, SystemName = field.SystemName }; return result; }
/// <summary> /// Creates the generic source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateGenericSourceField(IProcessField field, ExpressionObjectBase owner) { var dataType = SourceNodeFactory.GetDataType(GetType(field.ColumnType)); var result = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = field.SystemName, SystemName = field.SystemName }; return result; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateSourceField(IProcessField field, ExpressionObjectBase owner) { switch (field.ColumnType) { case ColumnTypes.Reference: case ColumnTypes.MultiReference: return CreateCrossReferenceSourceField(field, owner); case ColumnTypes.ReverseReference: case ColumnTypes.ReverseMultiReference: return CreateReverseCrossReferenceSourceField(field, owner); case ColumnTypes.Checklist: return CreateChecklistSourceField(field, owner); case ColumnTypes.DisplayList: return CreateDisplayListSourceField(field, owner); case ColumnTypes.Sample: return CreateSampleSourceField(field, owner); case ColumnTypes.File: return CreateFileSourceField(field, owner); case ColumnTypes.Result: return CreateResultSourceField(field, owner); default: return CreateGenericSourceField(field, owner); } }