예제 #1
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = MethodSignature + Environment.NewLine;
            // ATTRIBUTES
            returnString += "\t\t" + AttributesPrefix + Environment.NewLine;
            foreach (var removedAttribute in RemovedAttributes)
            {
                returnString += "-\t\t\t" + removedAttribute.Name + Environment.NewLine;
            }
            returnString += Environment.NewLine;

            foreach (var addedAttribute in AddedAttributes)
            {
                returnString += "+\t\t\t" + addedAttribute.Name + Environment.NewLine;
            }

            return returnString;
        }
예제 #2
0
        public string GenerateHumanReadableInterfaceDefinition(NtegrityOutputSettings settings)
        {
            var returnString = AssemblyNamePrefix + Name + Environment.NewLine;
            returnString += AssemblyVersionPrefix + Version + Environment.NewLine;
            returnString += CLRVersionPrefix + CLRVersion + Environment.NewLine + Environment.NewLine;

            returnString += ReferencedAssembliesPrefix + Environment.NewLine;
            var referencedAssemblies = ReferencedAssemblies.OrderBy(x => x);
            foreach (var assembly in referencedAssemblies)
            {
                returnString += assembly + Environment.NewLine;
            }
            returnString += Environment.NewLine;

            var classes = Classes.OrderBy(x => x.Name);
            returnString += "CLASSES:" + Environment.NewLine;
            foreach (var classType in classes)
            {
                if (!classType.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    settings.ShowTypesAtOrAboveAccessLevel))
                {
                    continue;
                }
                returnString += classType.ToString(settings) + Environment.NewLine;
            }

            var interfaces = Interfaces.OrderBy(x => x.Name);
            returnString += "INTERFACES: " + Environment.NewLine;
            foreach (var interfaceType in interfaces)
            {
                if (!interfaceType.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    settings.ShowTypesAtOrAboveAccessLevel))
                {
                    continue;
                }
                returnString += interfaceType.ToString() + Environment.NewLine;
            }

            var enums = Enums.OrderBy(x => x.Name);
            returnString += "ENUMS: " + Environment.NewLine;
            foreach (var enumType in enums)
            {
                if (!enumType.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    settings.ShowTypesAtOrAboveAccessLevel))
                {
                    continue;
                }
                returnString += enumType.ToString() + Environment.NewLine;
            }

            var structs = Structs.OrderBy(x => x.Name);
            returnString += "STRUCTS: " + Environment.NewLine;
            foreach (var structType in structs)
            {
                if (!structType.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    settings.ShowTypesAtOrAboveAccessLevel))
                {
                    continue;
                }
                returnString += structType.ToString() + Environment.NewLine;
            }

            return returnString;
        }
예제 #3
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = "";

            if (!AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                outputSettings.ShowTypesAtOrAboveAccessLevel))
            {
                return returnString;
            }

            var attributes = AttributeData.OrderBy(x => x.Name);
            foreach (var attribute in attributes)
            {
                returnString += outputSettings.TypePrefix + attribute + Environment.NewLine;
            }
            returnString += outputSettings.TypePrefix + AccessLevelEnumHelpers.GetKeywordFromEnum(AccessLevel) + " ";

            if (Type == TypeEnum.Class)
            {
                if (IsStatic)
                {
                    returnString += "static ";
                }
                else
                {
                    if (IsAbstract)
                    {
                        returnString += "abstract ";
                    }
                    if (IsSealed)
                    {
                        returnString += "sealed ";
                    }
                }
            }

            returnString += TypeEnumHelpers.GetKeywordFromEnum(Type) + " ";
            returnString += Name + Environment.NewLine;

            if (!String.IsNullOrEmpty(InheritsFrom))
            {
                returnString += outputSettings.TypePrefix + "INHERITS:" + Environment.NewLine;
                returnString += outputSettings.MemberPrefix + InheritsFrom + Environment.NewLine;
            }

            if (ImplementsInterfaces.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "IMPLEMENTS:" + Environment.NewLine;
                foreach (var interfaceName in ImplementsInterfaces)
                {
                    returnString += outputSettings.MemberPrefix + interfaceName + Environment.NewLine;
                }
            }

            if (ConstructorData.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "CONSTRUCTORS:" + Environment.NewLine;
                foreach (var constructor in ConstructorData)
                {
                    if (!constructor.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
                    {
                        continue;
                    }
                    returnString += constructor.ToString(outputSettings) + Environment.NewLine;
                }
            }

            var methodsToShow = MethodData.Where(
                (x) =>
                {
                    if (!outputSettings.ShowInheritedMethods && x.IsInherited)
                    {
                        return false;
                    }
                    if (!outputSettings.ShowMethodsInheritedFromSystemTypes
                    && x.IsInherited
                    && x.DeclaringType.StartsWith("System."))
                    {
                        return false;
                    }
                    return true;
                });
            if (methodsToShow.Any())
            {
                methodsToShow = methodsToShow.OrderBy(x => x.MethodSignature);
                returnString += outputSettings.TypePrefix + "METHODS:" + Environment.NewLine;
                foreach (var method in methodsToShow)
                {
                    if (!method.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
                    {
                        continue;
                    }
                    returnString += method.ToString() + Environment.NewLine;
                }
            }

            if (PropertyData.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "PROPERTIES:" + Environment.NewLine;
                foreach (var property in PropertyData)
                {
                    if (!(property.GetterAccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel)
                    || property.SetterAccessLevel.HasAvailabilityEqualToOrGreaterThan((
                    outputSettings.ShowTypesAtOrAboveAccessLevel))))
                    {
                        continue;
                    }
                    returnString += property.ToString(outputSettings) + Environment.NewLine;
                }
            }

            if (FieldData.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "FIELDS:" + Environment.NewLine;
                foreach (var field in FieldData)
                {
                    if (!field.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
                    {
                        continue;
                    }
                    returnString += field.ToString(outputSettings) + Environment.NewLine;
                }
            }

            return returnString;
        }
예제 #4
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = "\t" + Name + Environment.NewLine;
            // ATTRIBUTES
            returnString += "\t" + AttributesPrefix + Environment.NewLine;
            if (RemovedAttributes.Any())
            {
                foreach (var removedAttribute in RemovedAttributes)
                {
                    returnString += "-\t\t" + removedAttribute.Name + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            if (RemovedAttributes.Any())
            {
                foreach (var addedAttribute in AddedAttributes)
                {
                    returnString += "+\t\t" + addedAttribute.Name + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            // FIELDS
            returnString += "\t" + FieldsPrefix + Environment.NewLine;
            if (RemovedFields.Any())
            {
                foreach (var removedField in RemovedFields)
                {
                    returnString += "-\t\t" + removedField.FieldSignature + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            if (AddedFields.Any())
            {
                foreach (var addedField in AddedFields)
                {
                    returnString += "+\t\t" + addedField.FieldSignature + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            if (ModifiedFields.Any())
            {
                foreach (var modifiedField in ModifiedFields)
                {
                    returnString += "^\t\t" + modifiedField.ToString() + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            // STRUCTS
            returnString += "\t" + MethodsPrefix + Environment.NewLine;
            if (RemovedMethods.Any())
            {
                foreach (var removedMethod in RemovedMethods)
                {
                    returnString += "-\t\t" + removedMethod.MethodSignature + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            if (AddedMethods.Any())
            {
                foreach (var addedMethod in AddedMethods)
                {
                    returnString += "+\t\t" + addedMethod.MethodSignature + Environment.NewLine;
                }
                returnString += Environment.NewLine;
            }

            if (ModifiedMethods.Any())
            {
                foreach (var modifiedMethod in ModifiedMethods)
                {
                    returnString += "^\t\t" + modifiedMethod.ToString() + Environment.NewLine;
                }
            }

            return returnString;
        }
예제 #5
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = "";

            if (AttributeData.Count > 0)
            {
                foreach (var attribute in AttributeData)
                {
                    if (!outputSettings.ShowCompilerAttributes)
                    {
                        if (attribute.IsCompilerGenerated)
                        {
                            continue;
                        }
                    }

                    returnString += outputSettings.MemberPrefix + "[" + attribute.Name + "]" + Environment.NewLine;
                }
            }
            var accessorString = "{ ";
            if (HasGetter && GetterAccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
            {
                accessorString += GetterAccessLevel.GetKeywordFromEnum() + " get; ";
            }
            if (HasSetter && SetterAccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
            {
                accessorString += SetterAccessLevel.GetKeywordFromEnum() + " set; ";
            }
            accessorString += "}";

            return returnString + outputSettings.MemberPrefix + PropertySignature + " " + accessorString;
        }
예제 #6
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = "";
            if (!AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                outputSettings.ShowTypesAtOrAboveAccessLevel))
            {
                return returnString;
            }

            if (AttributeData.Count > 0)
            {
                foreach (var attribute in AttributeData)
                {
                    if (!outputSettings.ShowCompilerAttributes)
                    {
                        if (attribute.IsCompilerGenerated)
                        {
                            continue;
                        }
                    }

                    returnString += outputSettings.MemberPrefix + "[" + attribute.Name + "]" + Environment.NewLine;
                }
            }

            returnString += outputSettings.MemberPrefix + AccessLevel.GetKeywordFromEnum()
                            + " " + ReturnType + " ";
            if (IsInherited)
            {
                returnString += DeclaringType + ".";
            }
            returnString += MethodSignature;
            return returnString;
        }
예제 #7
0
        public string ToString(NtegrityOutputSettings outputSettings)
        {
            var returnString = "";

            if (!AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                outputSettings.ShowTypesAtOrAboveAccessLevel))
            {
                return returnString;
            }

            var attributes = AttributeData.OrderBy(x => x.Name);
            foreach (var attribute in attributes)
            {
                returnString += outputSettings.TypePrefix + attribute + Environment.NewLine;
            }
            returnString += outputSettings.TypePrefix + AccessLevelEnumHelpers.GetKeywordFromEnum(AccessLevel) + " ";

            returnString += TypeEnumHelpers.GetKeywordFromEnum(Type) + " ";
            returnString += Name + Environment.NewLine;

            if (ImplementsInterfaces.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "IMPLEMENTS:" + Environment.NewLine;
                foreach (var interfaceName in ImplementsInterfaces)
                {
                    returnString += outputSettings.MemberPrefix + interfaceName + Environment.NewLine;
                }
            }

            var methodsToShow = MethodData.Where(
                (x) =>
                {
                    if (!outputSettings.ShowInheritedMethods && x.IsInherited)
                    {
                        return false;
                    }
                    if (!outputSettings.ShowMethodsInheritedFromSystemTypes
                    && x.IsInherited
                    && x.DeclaringType.StartsWith("System."))
                    {
                        return false;
                    }
                    return true;
                });
            if (methodsToShow.Any())
            {
                methodsToShow = methodsToShow.OrderBy(x => x.MethodSignature);
                returnString += outputSettings.TypePrefix + "METHODS:" + Environment.NewLine;
                foreach (var method in methodsToShow)
                {
                    if (!method.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
                    {
                        continue;
                    }
                    returnString += method.ToString(outputSettings) + Environment.NewLine;
                }
            }

            if (FieldData.Count > 0)
            {
                returnString += outputSettings.TypePrefix + "FIELDS:" + Environment.NewLine;
                foreach (var field in FieldData)
                {
                    if (!field.AccessLevel.HasAvailabilityEqualToOrGreaterThan(
                    outputSettings.ShowTypesAtOrAboveAccessLevel))
                    {
                        continue;
                    }
                    returnString += field.ToString(outputSettings) + Environment.NewLine;
                }
            }

            return returnString;
        }