コード例 #1
0
        public static void GenerateParameterCodes()
        {
            string sharedDir = EditorPrefs.GetString("SharedDirLocation", null);

            if (sharedDir == null)
            {
                Debug.Log("SharedDir Location not specified");
                return;
            }

            String jsonString = File.ReadAllText(sharedDir + "/ParameterCode");

            JArray        parameterCodeEntries = JArray.Parse(jsonString);
            List <string> parameterCodes       = new List <string>();

            foreach (JToken code in parameterCodeEntries)
            {
                parameterCodes.Add(code.Value <string>());
            }

            EnumGenerator generator      = new EnumGenerator("ParameterCode", parameterCodes.ToArray());
            var           classDefintion = generator.TransformText();

            GenerateCodeFile("ParameterCode", classDefintion);
        }
コード例 #2
0
        public void EnumGenerator()
        {
            IEnumGenerator enumgenerator = new EnumGenerator();
            Days           daything      = (Days)enumgenerator.Generate(random, typeof(Days));

            Assert.IsNotNull(daything);
        }
コード例 #3
0
        public void SetUp()
        {
            builder = new StringBuilder();
            writer  = new StringWriter(builder);

            generator = new EnumGenerator(writer);
        }
コード例 #4
0
        private void AssertError(string expected, string args, int count, EnumGenerator.Mode mode)
        {
            EnumGenerator generator = new EnumGenerator(args, count, mode);

            Assert.AreEqual(expected, generator.error);
            Assert.AreEqual(0, generator.texts.Count, "Expected no texts when error");
        }
コード例 #5
0
ファイル: EditorTools.cs プロジェクト: TheJammers/Vertbix
    void OnGUI()
    {
        if (GUILayout.Button("Clear Save"))
        {
            PlayerPrefs.DeleteAll();
        }

        GUILayout.Space(20);
        GUILayout.Label("Wagon ID:");
        wagonID = GUILayout.TextField(wagonID);
        if (GUILayout.Button("Add Wagon"))
        {
            var wagon = GameManager.Instance.WagonData.FirstOrDefault(w => w.ID == wagonID);
            if (wagon != null)
            {
                FindObjectOfType <Vehicle>().AddWagon(SerialisationUtility.DeserialiseWagon(wagon));
            }
            else
            {
                Debug.LogError("Cant find wagon for name: " + wagonID);
            }
        }

        if (GUILayout.Button("GenerateEnums"))
        {
            EnumGenerator.GenerateEnumFile();
        }
    }
コード例 #6
0
        public async System.Threading.Tasks.Task Run()
        {
            // root file path
            var rootFilePath = "src/SDK/Foundation";

            var entities = Config["entities"];

            EntityFactoryGenerator.GenerateEntityFactory(entities, rootFilePath, CompilationContainer);

            // generate entities
            foreach (var entity in entities)
            {
                var entityGroup      = entity["group_id"].GetStringValue().ToPascal();
                var entityNamePascal = entity["_key"].GetStringValue().ToPascal();

                // generate entity enums
                EnumGenerator.GenerateEnums(entity, rootFilePath, entityGroup, entityNamePascal, CompilationContainer);

                // generate entity class
                EntityClassGenerator.GenerateEntityClass(entity, entityNamePascal, rootFilePath, entityGroup, CompilationContainer);

                if (entity["methods"].Any())
                {
                    EntityRepositoryGenerator.GenerateRepository(entity, entityNamePascal, rootFilePath, entityGroup, CompilationContainer);
                }
            }

            await CompilationContainer.Compile();

            CompilationContainer.WriteFiles();
        }
コード例 #7
0
        public async Task ExecuteInMemoryTest()
        {
            var fileName = ".\\test-project.mdj";
            var project  = await DVDpro.StarUML.FileFormat.Project.LoadAsync(fileName);

            var generator = new EnumGenerator();

            using (var ms = new System.IO.MemoryStream())
            {
                using (var outStream = new CSharpWriter(ms))
                {
                    foreach (var model in project.GetChildrenByType <DVDpro.StarUML.FileFormat.Nodes.UmlModelNode>())
                    {
                        var enumNode = model.GetChildrenByType <DVDpro.StarUML.FileFormat.Nodes.UmlEnumerationNode>().First(r => r.Name == "MasterEnum");
                        generator.Generate(outStream, enumNode);
                    }

                    outStream.Flush();
                    ms.Seek(0, System.IO.SeekOrigin.Begin);
                    using (var reader = new System.IO.StreamReader(ms))
                    {
                        var output = reader.ReadToEnd();
                        Assert.Equal("/// <summary>\r\n/// Test enum comment\r\n/// multiline\r\n/// </summary>\r\npublic enum MasterEnum\r\n{\r\n    /// <summary>test literal comment</summary>\r\n    Literal1 = 0x1,\r\n\r\n    Literal2\r\n}\r\n", output);
                    }
                }
            }
        }
コード例 #8
0
        public static void GenerateEnum()
        {
            string sharedDir = EditorPrefs.GetString("SharedDirLocation", null);

            if (sharedDir == null)
            {
                Debug.Log("SharedDir Location not specified");
                return;
            }

            DirectoryInfo enumDir = new DirectoryInfo(sharedDir + "/model/enums");

            foreach (FileInfo file in enumDir.GetFiles())
            {
                String  jsonString      = File.ReadAllText(file.FullName);
                JObject enumDescription = JObject.Parse(jsonString);
                string  enumName        = (string)enumDescription["name"];
                JArray  enumEntryArray  = (JArray)enumDescription["variables"];

                List <string> enumEntries = new List <string>();
                foreach (JToken entry in enumEntryArray)
                {
                    enumEntries.Add(entry.Value <string>());
                }

                EnumGenerator generator      = new EnumGenerator(enumName, enumEntries.ToArray());
                var           classDefintion = generator.TransformText();
                GenerateCodeFile(enumName, classDefintion);
            }
        }
コード例 #9
0
        public void SetPossibleValues(XenReflectionProperty xRef, XenProperty xProp, Enum e)
        {
            if (xRef == null || xProp == null)
            {
                return;
            }

            xProp.XenType = CreateType(xRef);
            var item = GetItem(xProp.XenType.GetType());

            var gen    = new EnumGenerator();
            var result = gen.Get(e.GetType());

            if (item != null)
            {
                xProp.XenType.Descriptor = item.Descriptor;
            }

            xProp.XenType.PossibleValues = result;
            xProp.XenType.Descriptor    |= XenPropertyDescriptors.Literals;

            if (e.HasFlags())
            {
                xProp.XenType.Descriptor |= XenPropertyDescriptors.Flags;
            }
        }
コード例 #10
0
        public async Task ExecuteToFileTest()
        {
            var fileName = ".\\test-project.mdj";
            var project  = await DVDpro.StarUML.FileFormat.Project.LoadAsync(fileName);

            var tmpFile = System.IO.Path.GetTempFileName();

            try
            {
                var generator = new EnumGenerator();
                using (var outStream = new CSharpWriter(tmpFile))
                {
                    foreach (var model in project.GetChildrenByType <DVDpro.StarUML.FileFormat.Nodes.UmlModelNode>())
                    {
                        var enumNode = model.GetChildrenByType <DVDpro.StarUML.FileFormat.Nodes.UmlEnumerationNode>().First(r => r.Name == "MasterEnum");
                        generator.Generate(outStream, enumNode);
                    }
                }
                var output = await System.IO.File.ReadAllTextAsync(tmpFile);

                Assert.Equal("/// <summary>\r\n/// Test enum comment\r\n/// multiline\r\n/// </summary>\r\npublic enum MasterEnum\r\n{\r\n    /// <summary>test literal comment</summary>\r\n    Literal1 = 0x1,\r\n\r\n    Literal2\r\n}\r\n", output);
            }
            finally
            {
                System.IO.File.Delete(tmpFile);
            }
        }
コード例 #11
0
        private void AssertRoman(string[] expected, string args, int count)
        {
            EnumGenerator generator = new EnumGenerator(args, count, EnumGenerator.Mode.Roman);

            Assert.IsNull(generator.error, "Error must be null");
            CollectionAssert.AreEqual(expected, generator.texts);
        }
コード例 #12
0
 /// <summary>
 /// Default constructor for CSharpClientCodeGenerator. It initializes contained generators with their default values.
 /// </summary>
 public CSharpClientCodeGenerator()
 {
     this._webContextGenerator    = new CSharpWebContextGenerator();
     this._entityProxyGenerator   = new CSharpEntityGenerator();
     this._complexObjectGenerator = new CSharpComplexObjectGenerator();
     this._domainContextGenerator = new CSharpDomainContextGenerator();
     this._enumGenerator          = new CSharpEnumGenerator();
 }
コード例 #13
0
        public void EnumGeneratorTest()
        {
            var enumgenerator = new EnumGenerator(Enum.GetValues(typeof(CustomerType)));
            var enumvalue     = enumgenerator.Generate();

            Assert.IsNotNull(enumvalue);
            Assert.IsInstanceOf <CustomerType>(enumvalue);
        }
 /// <summary>
 /// Default constructor for CSharpClientCodeGenerator. It initializes contained generators with their default values.
 /// </summary>
 public CSharpClientCodeGenerator()
 {
     this._webContextGenerator = new CSharpWebContextGenerator();
     this._entityProxyGenerator = new CSharpEntityGenerator();
     this._complexObjectGenerator = new CSharpComplexObjectGenerator();
     this._domainContextGenerator = new CSharpDomainContextGenerator();
     this._enumGenerator = new CSharpEnumGenerator();
 }
コード例 #15
0
 public void Enum_WhenCreatingEnumWithAttribute_ShouldGenerateCorrectCode()
 {
     Assert.AreEqual("[Test]enumMyEnum{MyValue,MyOtherValue}", EnumGenerator.Create("MyEnum", new List <EnumMember> {
         new EnumMember("MyValue"), new EnumMember("MyOtherValue")
     }, attributes: new List <Attribute> {
         new Attribute("Test")
     }).ToString());
 }
コード例 #16
0
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     if (GUILayout.Button("Save changes"))
     {
         EnumGenerator.GenerateEnumFromStringList("AudioClipTypes", "AudioClipType", ((SoundsConfig)target).GetAvailableNames()
                                                  .Where(objName => _provider.IsValidIdentifier(objName)));
     }
 }
コード例 #17
0
        public void RequestForEnumWithNoValuesThrowsObjectCreationException()
        {
            // Arrange
            var sut = new EnumGenerator();
            // Act & assert
            var dummyContext = new DelegatingSpecimenContext();

            Assert.Throws <ObjectCreationException>(() => sut.Create(typeof(EmptyEnum), dummyContext));
        }
コード例 #18
0
        public void GeneratesEnum()
        {
            var generator = new EnumGenerator();
            var random    = new FuzzRandom();

            var generatedValue = generator.Generate(Mock.Of <IFuzzProfile>(), typeof(TestEnum), random);

            Assert.IsTrue(generatedValue is TestEnum);
        }
コード例 #19
0
        public override string Generate(int indent)
        {
            if (Data != null)
            {
                var output = string.Empty;
                NamespaceGenerator @namespace = null;
                EnumGenerator      @enum      = null;

                if (string.IsNullOrEmpty(Data.title))
                {
                    return(output);
                }

                if (!string.IsNullOrEmpty(Data.category))
                {
                    @namespace = NamespaceGenerator.Namespace(Data.category);
                }

                @enum = EnumGenerator.Enum(Data.title.LegalMemberName());

                indices.Clear();

                for (int i = 0; i < Data.items.Count; i++)
                {
                    if (!string.IsNullOrEmpty(Data.items[i].name))
                    {
                        while (indices.Contains(Data.items[i].index))
                        {
                            Data.items[i].index++;
                        }

                        indices.Add(Data.items[i].index);

                        @enum.AddItem(Data.items[i].name, Data.items[i].index);
                    }
                }

                @enum.indexing = Data.useIndex;

#if VISUAL_SCRIPTING_1_7
                if (Data.lastCompiledName != Data.GetFullTypeName())
                {
                    @enum.AddAttribute(AttributeGenerator.Attribute <RenamedFromAttribute>().AddParameter(Data.lastCompiledName));
                }
#endif

                if (@namespace != null)
                {
                    @namespace.AddEnum(@enum);
                    return(@namespace.Generate(indent));
                }

                return(@enum.Generate(indent));
            }

            return(string.Empty);
        }
コード例 #20
0
    private void DrawAddNewLanguageButton()
    {
        GUILayout.Space(8);
        EditorGUILayout.LabelField("Input new Language name:");

        EditorGUI.BeginChangeCheck();
        m_newLanguageName = EditorGUILayout.TextField(m_newLanguageName);
        if (EditorGUI.EndChangeCheck())
        {
            m_showSureToDelete = false;
            m_languageToDelete = Languages.English;
        }

        if (showAddFeedback)
        {
            EditorGUILayout.HelpBox(m_newLanguageName + " added", MessageType.Info);

            framesFeedbackShown++;
            if (framesFeedbackShown >= 15)
            {
                framesFeedbackShown = 0;
                showAddFeedback     = false;
            }
        }

        m_canAddNewLanguage = !string.IsNullOrEmpty(m_newLanguageName) &&
                              !Enum.IsDefined(typeof(Languages), m_newLanguageName) &&
                              TextFieldCheck(ref m_newLanguageName, true);
        string addButtonText = "Add new language";

        if (Enum.IsDefined(typeof(Languages), m_newLanguageName))
        {
            addButtonText = "Language already exists";
        }
        if (!TextFieldCheck(ref m_newLanguageName, true))
        {
            addButtonText = "Illegal characters detected";
        }

        GUI.enabled = m_canAddNewLanguage;
        if (GUILayout.Button(addButtonText))
        {
            List <string> possibleLanguage = Enum.GetNames(typeof(Languages)).ToList();
            possibleLanguage.Add(m_newLanguageName);

            EnumGenerator.GenerateEnumFromList(Application.dataPath + LANGUAGES_ENUM_PATH, "Languages",
                                               possibleLanguage);

            showAddFeedback = true;
        }
        GUI.enabled = true;

        if (!TextFieldCheck(ref m_newLanguageName, true))
        {
            EditorGUILayout.HelpBox("Languages are only allowed to consist of characters and numbers. \nNo numbers in the first position.", MessageType.Warning);
        }
    }
コード例 #21
0
        public void SutIsSpecimenBuilder()
        {
            // Arrange
            // Act
            var sut = new EnumGenerator();

            // Assert
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
        }
コード例 #22
0
 public void Enum_WhenCreatingEnumWithModifiers_ShouldGenerateCorrectCode()
 {
     Assert.AreEqual("publicenumMyEnum{MyValue,MyOtherValue}", EnumGenerator.Create("MyEnum", new List <EnumMember> {
         new EnumMember("MyValue"), new EnumMember("MyOtherValue")
     }, modifiers: new List <Modifiers>()
     {
         Modifiers.Public
     }).ToString());
 }
コード例 #23
0
 private void BeforeGeneration()
 {
     if (!(string.IsNullOrEmpty(decorated.@namespace) || string.IsNullOrWhiteSpace(decorated.@namespace)))
     {
         @namespace = NamespaceGenerator.Namespace([email protected]());
     }
     @enum = EnumGenerator.Enum(decorated.title);
     guid  = decorated.GetGUID();
 }
コード例 #24
0
ファイル: Program.cs プロジェクト: lukaspj/T3DSharp-Book
        private static void ParseEngineApi()
        {
            StreamReader sr =
                new StreamReader("engineApi.xml");
            string content = sr.ReadToEnd();

            sr.Close();

            EngineApi engineApi = EngineApiParser.Parse(content);

            Console.WriteLine(engineApi.Enums.Count);
            Console.WriteLine(engineApi.Structs.Count);
            Console.WriteLine(engineApi.Functions.Count);
            Console.WriteLine(engineApi.Classes.Count);

            foreach (EngineStruct engineStruct in engineApi.Structs)
            {
                if (engineStruct.Fields.Count < 1)
                {
                    Console.WriteLine("No fields defined in struct: " + engineStruct.Name);
                }
            }

            // Careful!!! Don't choose the wrong directory or it might get deleted..
            string outputDirectory = "../t3dsharp/T3DSharpFramework/Generated";

            if (Directory.Exists(outputDirectory))
            {
                Directory.Delete(outputDirectory, true);
            }

            engineApi.Enums
            .ForEach(e => e.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(e.Docs)).Trim());

            engineApi.Structs
            .ForEach(s => s.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(s.Docs)).Trim());

            engineApi.Functions
            .ForEach(f => f.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(f.Docs)).Trim());

            engineApi.Classes
            .ForEach(c => c.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(c.Docs)).Trim());

            engineApi.Classes
            .ForEach(c => c.Methods.ForEach(m => m.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(m.Docs)).Trim()));

            engineApi.Classes
            .ForEach(c => c.Properties.ForEach(p => p.Docs = DotNetXmlDocGenerator.Generate(EngineApiDocStringParser.Parse(p.Docs)).Trim()));

            EnumGenerator.GenerateFor(outputDirectory, engineApi, engineApi.Enums);
            StructGenerator.GenerateFor(outputDirectory, engineApi, engineApi.Structs);
            FunctionGenerator.GenerateFor(outputDirectory, engineApi, engineApi.Functions);
            ClassGenerator.GenerateFor(outputDirectory, engineApi, engineApi.Classes);
            PrimitiveSizesGenerator.GenerateFor(outputDirectory, engineApi, engineApi.Primitives);
            Console.WriteLine("Finished code generation.");
        }
コード例 #25
0
        public void SutIsSpecimenBuilder()
        {
            // Fixture setup
            // Exercise system
            var sut = new EnumGenerator();

            // Verify outcome
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
            // Teardown
        }
コード例 #26
0
    static private void SaveKeys(IList <Item> items, Type keyType, Object target)
    {
        var code   = EnumGenerator.GetCode(keyType.Namespace, keyType.Name, items.Select(x => x.key));
        var path   = AssetDatabase.GetAssetPath(target);
        var pathID = Path.Combine(Path.GetDirectoryName(path), keyType.Name + ".cs");

        File.WriteAllText(pathID, code);

        AssetDatabase.Refresh(ImportAssetOptions.Default);
    }
コード例 #27
0
    private void RefreshTagEnum()
    {
        List <string> tags = new List <string>();

        tags.AddRange(m_englishFile.GetTags());
        tags.Sort();
        tags.Insert(0, "None");

        EnumGenerator.GenerateLanguageFileTagsFromListWithPrevious(Application.dataPath + LocalizationManager.TagEnumPath, tags);
    }
コード例 #28
0
        public void RequestForEnumWithNoValuesThrowsObjectCreationException()
        {
            // Fixture setup
            var sut = new EnumGenerator();
            // Exercise system and Verify outcome
            var dummyContext = new DelegatingSpecimenContext();

            Assert.Throws <ObjectCreationException>(() => sut.Create(typeof(EmptyEnum), dummyContext));
            // Teardown
        }
コード例 #29
0
        public void RequestForFlagEnumTypeReturnsCorrectResult(Type enumType, int requestCount, object expectedResult)
        {
            // Arrange
            var sut = new EnumGenerator();
            // Act
            var dummyContext = new DelegatingSpecimenContext();
            var result       = Enumerable.Repeat <Func <object> >(() => sut.Create(enumType, dummyContext), requestCount).Select(f => f()).ToArray().Last();

            // Assert
            Assert.Equal(expectedResult, result);
        }
コード例 #30
0
        public void RequestForEnumTypeReturnsCorrectResult(Type enumType, int requestCount, object expectedResult)
        {
            // Fixture setup
            var sut = new EnumGenerator();
            // Exercise system
            var dummyContext = new DelegatingSpecimenContext();
            var result       = Enumerable.Repeat <Func <object> >(() => sut.Create(enumType, dummyContext), requestCount).Select(f => f()).Last();

            // Verify outcome
            Assert.Equal(expectedResult, result);
            // Teardown
        }
コード例 #31
0
        string Render(EnumType enumType)
        {
            Symbols.MapTypeToPackage("myEnumFqn", enumType.Assembly);
            Symbols.MapNamespace(enumType.QualifiedNamespace, "MyNamespace");
            Symbols.MapTypeName("myEnumFqn", "MyEnum", JsonModel.Spec.TypeKind.Enum);

            EnumGenerator generator = new EnumGenerator(enumType.Assembly, enumType, Symbols, Namespaces);

            SyntaxTree syntaxTree = generator.CreateSyntaxTree();

            return(syntaxTree.ToString());
        }
コード例 #32
0
 public void EnumGenerator()
 {
     IEnumGenerator enumgenerator = new EnumGenerator();
     Days daything = (Days)enumgenerator.Generate(random, typeof(Days));
     Assert.IsNotNull(daything);
 }
コード例 #33
0
 public ClassesGenerator(GeneratorData data, Translator translator)
 {
     this.data = data;
     this.translator = translator;
     eg = new EnumGenerator(data);
 }