public static string GetCSharpModelReferenceName(TransportModelTypeReference reference, Settings settings, ModelType modelType, bool useSimpleCollections = false)
        {
            if (reference is ITransportModelTypeReferenceTransportModelItem <TransportModelItem> modelItemReference)
            {
                return(CreateModelTypeName(modelItemReference, settings, modelType, useSimpleCollections));
            }

            if (reference is TransportModelTypeReferencePrimitive primitiveReference)
            {
                return(CreateModelPrimitiveTypeName(primitiveReference, settings, modelType));
            }

            if (reference is TransportModelTypeReferenceGenericParameter transportModelTypeReferenceGenericParameter)
            {
                return(CreateGenericParameterReferenceName(transportModelTypeReferenceGenericParameter, settings, modelType, useSimpleCollections));
            }

            throw new InvalidOperationException($"Unable to map reference name {reference.GetType()}");
        }
Example #2
0
        public static bool TypeReferenceInherits(TransportModelTypeReference parent, TransportModelTypeReference child)
        {
            if (parent.Equals(child))
            {
                return(true);
            }

            if (parent is ITransportModelTypeReferenceTransportModelItem <TransportModelItem> parentRef &&
                child is ITransportModelTypeReferenceTransportModelItem <TransportModelItem> childRef)
            {
                if (parentRef.GenericArguments.Count > 0)
                {
                    throw new InvalidOperationException("Cannot check inheritance for types with generic arguments.");
                }

                return(TypeInherits(parentRef.TransportModelItem, childRef.TransportModelItem));
            }

            return(false);
        }
 public static bool IsNode(TransportModelTypeReference reference)
 {
     return((reference is ITransportModelTypeReferenceTransportModelItem <TransportModelItem> itemReference &&
             !(itemReference.TransportModelItem is TransportModelEnum)) ||
            reference is TransportModelTypeReferenceGenericParameter parameterReference);
 }
 public static bool IsNodeCollection(TransportModelTypeReference reference)
 {
     return(reference.IsCollection && IsNode(reference));
 }
 public static bool IsEnum(TransportModelTypeReference reference)
 {
     return(reference is ITransportModelTypeReferenceTransportModelItem <TransportModelItem> itemReference &&
            itemReference.TransportModelItem is TransportModelEnum);
 }