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