public static VirtualRelationEndPointDefinition Create(
     ClassDefinition classDefinition,
     string propertyName,
     bool isMandatory,
     CardinalityType cardinality,
     Type propertyType)
 {
     return(Create(classDefinition, propertyName, isMandatory, cardinality, propertyType, null));
 }
        public static VirtualRelationEndPointDefinition Create(
            ClassDefinition classDefinition,
            string propertyName,
            bool isMandatory,
            CardinalityType cardinality,
            Type propertyType,
            string sortExpressionString)
        {
            var propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation>();

            propertyInformationStub.Stub(stub => stub.Name).Return(propertyName);
            propertyInformationStub.Stub(stub => stub.PropertyType).Return(propertyType);
            propertyInformationStub.Stub(stub => stub.DeclaringType).Return(TypeAdapter.Create(classDefinition.ClassType));

            return(new VirtualRelationEndPointDefinition(
                       classDefinition, propertyName, isMandatory, cardinality, sortExpressionString, propertyInformationStub));
        }
Esempio n. 3
0
        private VirtualRelationEndPointDefinition CreateVirtualRelationEndPointDefinition(
            ClassDefinition classDefinition,
            Type declaringType,
            string shortPropertyName,
            bool isMandatory,
            CardinalityType cardinality,
            string sortExpressionText)
        {
            var propertyInfo = GetPropertyInfo(declaringType, shortPropertyName);

            return(new VirtualRelationEndPointDefinition(
                       classDefinition,
                       MappingConfiguration.Current.NameResolver.GetPropertyName(propertyInfo),
                       isMandatory,
                       cardinality,
                       sortExpressionText,
                       propertyInfo));
        }
        public VirtualRelationEndPointDefinition(
            ClassDefinition classDefinition,
            string propertyName,
            bool isMandatory,
            CardinalityType cardinality,
            string sortExpressionText,
            IPropertyInformation propertyInfo)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);
            ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName);
            ArgumentUtility.CheckValidEnumValue("cardinality", cardinality);
            ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo);

            _classDefinition    = classDefinition;
            _cardinality        = cardinality;
            _isMandatory        = isMandatory;
            _propertyName       = propertyName;
            _sortExpressionText = sortExpressionText;
            _sortExpression     = new DoubleCheckedLockingContainer <SortExpressionDefinition> (() => ParseSortExpression(_sortExpressionText));
            _propertyInfo       = propertyInfo;
        }
Esempio n. 5
0
        internal static void ImportMvdCardinality(DocModelRule docRule, CardinalityType cardinality)
        {
            switch (cardinality)
            {
                case CardinalityType._asSchema:
                    docRule.CardinalityMin = 0;
                    docRule.CardinalityMax = 0; // same as unitialized file
                    break;

                case CardinalityType.Zero:
                    docRule.CardinalityMin = -1; // means 0:0
                    docRule.CardinalityMax = -1;
                    break;

                case CardinalityType.ZeroToOne:
                    docRule.CardinalityMin = 0;
                    docRule.CardinalityMax = 1;
                    break;

                case CardinalityType.One:
                    docRule.CardinalityMin = 1;
                    docRule.CardinalityMax = 1;
                    break;

                case CardinalityType.OneToMany:
                    docRule.CardinalityMin = 1;
                    docRule.CardinalityMax = -1;
                    break;
            }
        }