Beispiel #1
0
        /// <summary>
        /// Produce the relevant <see cref="IGeneratedTypeModel"/> for a <see cref="TypeToProcess"/>
        /// </summary>
        /// <param name="job"></param>
        /// <param name="type"></param>
        /// <param name="definition"></param>
        /// <returns></returns>
        private IGeneratedTypeModel CreateModel(Job job, TypeToProcess type, ITypeDefinition definition)
        {
            var outputType = !string.IsNullOrEmpty(type.Render.GenerationType) ? type.Render.GenerationType: job.Configuration.DefaultOutputType;

            var factory = _outputTypeStore.GetFor(outputType);

            return(factory.Create(type, definition));
        }
Beispiel #2
0
        public IGeneratedTypeModel Create(TypeToProcess type, ITypeDefinition definition)
        {
            var generation = (Style)type.Render;

            // need to create the model 1st
            // we need to build the arguments that have been provided, these should map 1- 1 between attribute properties

            var arguments       = CreateArguments(generation.MethodArguments, definition);
            var attributeModels = CreateAttributes(type.Properties, definition);
            var eventModels     = CreateEvents(type.Events, definition);
            var methodModels    = CreateMethods(type.Methods, definition);

            var model = new Model(definition.Name, definition.FullName, Template(generation.TemplateName, DefaultTemplate), arguments, attributeModels, eventModels, methodModels);

            return(model);
        }