/// <summary>
        /// Generates the class code for a service.
        /// </summary>
        /// <param name="service">The service to generate for.</param>
        /// <param name="codeGenProvider">The code generator provider to use.</param>
        /// <param name="className">The class name of the service or null to use the service type.</param>
        /// <param name="namespaceName">The namespace for the class.</param>
        /// <param name="classScope">The scope for the class.</param>
        /// <param name="partial">True to make the class partial, false otherwise.</param>
        /// <param name="testStateVars">
        /// True to test each state variable to ensure it is
        /// usuable for accessing as property, false to include
        /// all state variables as properties.</param>
        /// <returns>The string representing the code for the class.</returns>
        public static string GenerateClassFor(
            this Service service, ICodeGenProvider codeGenProvider,
            string className, string namespaceName,
            ClassScope classScope, bool partial, bool testStateVars)
        {
            ServiceGen ldgGenerator = new ServiceGen(codeGenProvider);

            return(ldgGenerator.GenerateClassFor(
                       service, className, namespaceName, classScope, partial, testStateVars));
        }
Example #2
0
        /// <summary>
        /// Generates the class code for a service.
        /// </summary>
        /// <param name="service">The service to generate for.</param>
        /// <param name="codeGenProvider">The code generator provider to use.</param>
        /// <param name="className">The class name of the service or null to use the service type.</param>
        /// <param name="namespaceName">The namespace for the class.</param>
        /// <param name="classScope">The scope for the class.</param>
        /// <param name="partial">True to make the class partial, false otherwise.</param>
        /// <param name="testStateVars">
        /// True to test each state variable to ensure it is 
        /// usuable for accessing as property, false to include
        /// all state variables as properties.</param>
        /// <returns>The string representing the code for the class.</returns>
        public static string GenerateClassFor(
            this Service service, ICodeGenProvider codeGenProvider,
            string className, string namespaceName,
            ClassScope classScope, bool partial, bool testStateVars)
        {
            ServiceGen ldgGenerator = new ServiceGen(codeGenProvider);

            return ldgGenerator.GenerateClassFor(
                service, className, namespaceName, classScope, partial, testStateVars);
        }
Example #3
0
        /// <summary>
        /// Generates the class code for a device.
        /// </summary>
        /// <param name="device">The device to generate code for.</param>
        /// <param name="codeGenProvider">The code generator provider to use.</param>
        /// <param name="className">The class name of the device class or null to use friendly name.</param>
        /// <param name="namespaceName">The namespace for the class.</param>
        /// <param name="classScope">The scope of the class.</param>
        /// <param name="partial">True to make the class partial, false otherwise.</param>
        /// <param name="specificDevices">True if generating properties for device specific class types, false to use device non-specific class types.</param>
        /// <param name="specificServiceNamespace">The name of the service namespace if using specific service class types, null to use service non-specific class types.</param>
        /// <param name="specificDeviceClasses">The dictionary of UDNs, ClassNames for the devices or null for default / none.</param>
        /// <param name="specificServiceClasses">The dictionary of IDs, ClassNames for the services or null for default / none.</param>
        /// <returns>The string representing the code for the class.</returns>
        public static string GenerateClassFor(
            this Device device, ICodeGenProvider codeGenProvider,
            string className, string namespaceName, ClassScope classScope, bool partial,
            bool specificDevices, string specificServiceNamespace,
            Dictionary<string, string> specificDeviceClasses = null, Dictionary<string, string> specificServiceClasses = null)
        {
            DeviceGen ldgGenerator = new DeviceGen(codeGenProvider);

            return ldgGenerator.GenerateClassFor(
                device, className, namespaceName, classScope, partial, specificDevices,
                specificServiceNamespace, specificDeviceClasses, specificServiceClasses);
        }
Example #4
0
        /// <summary>
        /// Generates the class code for a device.
        /// </summary>
        /// <param name="device">The device to generate code for.</param>
        /// <param name="codeGenProvider">The code generator provider to use.</param>
        /// <param name="className">The class name of the device class or null to use friendly name.</param>
        /// <param name="namespaceName">The namespace for the class.</param>
        /// <param name="classScope">The scope of the class.</param>
        /// <param name="partial">True to make the class partial, false otherwise.</param>
        /// <param name="specificDevices">True if generating properties for device specific class types, false to use device non-specific class types.</param>
        /// <param name="specificServiceNamespace">The name of the service namespace if using specific service class types, null to use service non-specific class types.</param>
        /// <param name="specificDeviceClasses">The dictionary of UDNs, ClassNames for the devices or null for default / none.</param>
        /// <param name="specificServiceClasses">The dictionary of IDs, ClassNames for the services or null for default / none.</param>
        /// <returns>The string representing the code for the class.</returns>
        public static string GenerateClassFor(
            this Device device, ICodeGenProvider codeGenProvider,
            string className, string namespaceName, ClassScope classScope, bool partial,
            bool specificDevices, string specificServiceNamespace,
            Dictionary <string, string> specificDeviceClasses = null, Dictionary <string, string> specificServiceClasses = null)
        {
            DeviceGen ldgGenerator = new DeviceGen(codeGenProvider);

            return(ldgGenerator.GenerateClassFor(
                       device, className, namespaceName, classScope, partial, specificDevices,
                       specificServiceNamespace, specificDeviceClasses, specificServiceClasses));
        }
Example #5
0
        public string ServiceCodeGen(CodeGenArgs args)
        {
            ICodeGenFactory codeGenfactory = ServiceContainer.CodeGenFactory;

            try
            {
                ICodeGenProvider codeGen = codeGenfactory.GetCodeGen(this, args.lang);
                return(codeGen.GenerateScript(args.comment, args.isDraft));
            }
            catch (Exception ex)
            {
                _OnError(ex);
                throw;
            }
        }
Example #6
0
        /// <summary>
        /// Adds the selection items to the combo box
        /// </summary>
        protected void AddSelectionItems()
        {
            this.BeginUpdate();

            try
            {
                ICodeGenProvider lcgOldProvider = CodeGenProvider;

                this.Items.Clear();

                foreach (ICodeGenProvider lcgCodeGenProvider in mcgCodeGenProviders)
                {
                    this.Items.Add(lcgCodeGenProvider);
                }

                CodeGenProvider = lcgOldProvider;
            }
            finally
            {
                this.EndUpdate();
            }
        }
 /// <summary>
 /// Creates a new device class code generator.
 /// </summary>
 /// <param name="codeGenProvider">The provider to use when generating the code.</param>
 public StringConstants(ICodeGenProvider codeGenProvider)
 {
     mcgCodeGenProvider = codeGenProvider;
 }
Example #8
0
 /// <summary>
 /// Gets the default code generation class name for a service.
 /// </summary>
 /// <param name="service">The service to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(Service service, ICodeGenProvider codeGenProvider)
 {
     return codeGenProvider.CodeFriendlyIdentifier(service.FriendlyServiceTypeIdentifier, false);
 }
Example #9
0
 /// <summary>
 /// Creates a new service class code generator.
 /// </summary>
 /// <param name="codeGenProvider">The provider to use when generating the code.</param>
 public ServiceGen(ICodeGenProvider codeGenProvider)
 {
     mcgCodeGenProvider = codeGenProvider;
 }
Example #10
0
 /// <summary>
 /// Gets the default code generation class name for a service.
 /// </summary>
 /// <param name="service">The service to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(this Service service, ICodeGenProvider codeGenProvider)
 {
     return ServiceGen.DefaultCodeGenClassName(service, codeGenProvider);
 }
Example #11
0
 /// <summary>
 /// Gets the default code generation class name for a device.
 /// </summary>
 /// <param name="device">The device to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(Device device, ICodeGenProvider codeGenProvider)
 {
     return codeGenProvider.CodeFriendlyIdentifier(device.FriendlyName, false);
 }
 /// <summary>
 /// Gets the default code generation class name for a service.
 /// </summary>
 /// <param name="service">The service to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(this Service service, ICodeGenProvider codeGenProvider)
 {
     return(ServiceGen.DefaultCodeGenClassName(service, codeGenProvider));
 }
Example #13
0
 /// <summary>
 /// Creates a new device class code generator.
 /// </summary>
 /// <param name="codeGenProvider">The provider to use when generating the code.</param>
 public StringConstants(ICodeGenProvider codeGenProvider)
 {
     mcgCodeGenProvider = codeGenProvider;
 }
Example #14
0
 /// <summary>
 /// Gets the default code generation class name for a device.
 /// </summary>
 /// <param name="device">The device to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(this Device device, ICodeGenProvider codeGenProvider)
 {
     return DeviceGen.DefaultCodeGenClassName(device, codeGenProvider);
 }
Example #15
0
 /// <summary>
 /// Gets the default code generation class name for a device.
 /// </summary>
 /// <param name="device">The device to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(this Device device, ICodeGenProvider codeGenProvider)
 {
     return(DeviceGen.DefaultCodeGenClassName(device, codeGenProvider));
 }
Example #16
0
 /// <summary>
 /// Creates a new service class code generator.
 /// </summary>
 /// <param name="codeGenProvider">The provider to use when generating the code.</param>
 public ServiceGen(ICodeGenProvider codeGenProvider)
 {
     mcgCodeGenProvider = codeGenProvider;
 }
Example #17
0
 /// <summary>
 /// Gets the default code generation class name for a service.
 /// </summary>
 /// <param name="service">The service to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(Service service, ICodeGenProvider codeGenProvider)
 {
     return(codeGenProvider.CodeFriendlyIdentifier(service.FriendlyServiceTypeIdentifier, false));
 }
Example #18
0
 /// <summary>
 /// Gets the default code generation class name for a device.
 /// </summary>
 /// <param name="device">The device to get the class name for.</param>
 /// <param name="codeGenProvider">The code generation provider to use.</param>
 /// <returns>A string.</returns>
 public static string DefaultCodeGenClassName(Device device, ICodeGenProvider codeGenProvider)
 {
     return(codeGenProvider.CodeFriendlyIdentifier(device.FriendlyName, false));
 }