예제 #1
0
        private CSharpTemplate GetTemplate(JavaCodeConfig javaCodeConfig)
        {
            initDefault();

            if (string.IsNullOrEmpty(javaCodeConfig.ServiceCodeTemplateFile) &&
                string.IsNullOrEmpty(javaCodeConfig.ServiceImplCodeTemplateFile) &&
                string.IsNullOrEmpty(javaCodeConfig.ControllerCodeTemplateFile))
            {
                return(defaultTemplate);
            }

            CSharpTemplate template = templateCache[javaCodeConfig];

            if (template != null)
            {
                return(template);
            }

            template = defaultTemplate.Clone();


            if (false == string.IsNullOrEmpty(javaCodeConfig.ServiceCodeTemplateFile))
            {
                template.serviceTemplate = GetTemplate <JavaCodeConfig>(GetTemplateFilePath(javaCodeConfig.ServiceCodeTemplateFile));
            }
            if (false == string.IsNullOrEmpty(javaCodeConfig.ServiceImplCodeTemplateFile))
            {
                template.serviceImplTemplate = GetTemplate <JavaCodeConfig>(GetTemplateFilePath(javaCodeConfig.ServiceImplCodeTemplateFile));
            }
            if (false == string.IsNullOrEmpty(javaCodeConfig.ControllerCodeTemplateFile))
            {
                template.controllerTemplate = GetTemplate <JavaCodeConfig>(GetTemplateFilePath(javaCodeConfig.ControllerCodeTemplateFile));
            }


            return(template);
        }
예제 #2
0
        public void GenerateCode(JavaCodeConfig javaCodeConfig, JavaClass createdJavaBean)
        {
            CSharpTemplate template = GetTemplate(javaCodeConfig);
            IRazorEngineCompiledTemplate <RazorEngineTemplateBase <JavaCodeConfig> > codeTemplate = null;

            lock (this)
            {
                javaCodeConfig.JavaClass = createdJavaBean;

                string rootDir = String.Empty;

                string result = String.Empty;

                string fileName = string.Empty;

                Action action = () =>
                {
                    codeTemplate = null;
                    codeTemplate = codeTemplate ?? (javaCodeConfig.ForModel ? template.modelTemplate : null);
                    codeTemplate = codeTemplate ?? (javaCodeConfig.ForService ? template.serviceTemplate : null);
                    codeTemplate = codeTemplate ?? (javaCodeConfig.ForServiceImpl ? template.serviceImplTemplate : null);
                    codeTemplate = codeTemplate ?? (javaCodeConfig.ForController ? template.controllerTemplate : null);
                    if (codeTemplate == null)
                    {
                        Console.WriteLine("");
                    }



                    result = codeTemplate.Run(instance =>
                    {
                        instance.Model = javaCodeConfig;
                    });
                    Console.WriteLine(result);


                    string filePath = rootDir + Path.DirectorySeparatorChar + fileName + ".java";


                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                    File.WriteAllText(filePath, result, new UTF8Encoding(false));
                };

                if (javaCodeConfig.GeneralModel)
                {
                    javaCodeConfig.Reset();
                    javaCodeConfig.ForModel = true;
                    rootDir  = CodeUtil.PrepareCodeRoot(javaCodeConfig.ModelJavaDiretory, javaCodeConfig.ModelPackageName);
                    fileName = javaCodeConfig.ModelName;
                    action();
                }

                if (javaCodeConfig.GeneralService)
                {
                    javaCodeConfig.Reset();
                    javaCodeConfig.ForService = true;
                    rootDir  = CodeUtil.PrepareCodeRoot(javaCodeConfig.ModelJavaDiretory, javaCodeConfig.ServicePackageName);
                    fileName = javaCodeConfig.ServiceName;
                    action();
                }

                if (javaCodeConfig.GeneralServiceImpl)
                {
                    javaCodeConfig.Reset();
                    javaCodeConfig.ForServiceImpl = true;
                    rootDir  = CodeUtil.PrepareCodeRoot(javaCodeConfig.ModelJavaDiretory, javaCodeConfig.ServiceImplPackageName);
                    fileName = javaCodeConfig.ServiceImplName;
                    action();
                }

                if (javaCodeConfig.GeneralController)
                {
                    javaCodeConfig.Reset();
                    javaCodeConfig.ForController = true;
                    rootDir  = CodeUtil.PrepareCodeRoot(javaCodeConfig.ModelJavaDiretory, javaCodeConfig.ControllerPackageName);
                    fileName = javaCodeConfig.ControllerName;
                    action();
                }
            }
        }