public static string[] GetComponentNames(this ComponentData data)
        {
            // Attempt to get the actual Type object for this
            var type = data.GetTypeName().ToType();

            if (type != null)
            {
                var attr = Attribute
                           .GetCustomAttributes(type)
                           .OfType <ComponentNameAttribute>()
                           .SingleOrDefault();

                if (attr != null)
                {
                    return(attr.componentNames);
                }

                // Otherwise if the attribute is inaccessible return the string-calculated type name.
                return(new[]
                {
                    type.ToCompilableString().ShortTypeName().AddComponentSuffix()
                });
            }

            // Otherwise just return the type name as originally set in the ComponentData instance.
            return(new[]
            {
                data.GetTypeName()
            });
        }
        public static string EventComponentName(this ComponentData data, EventData eventData)
        {
            var componentName      = data.GetTypeName().ToComponentName();
            var shortComponentName = data.GetTypeName().ToComponentName();
            var eventComponentName = componentName.Replace(
                shortComponentName,
                eventData.GetEventPrefix() + shortComponentName);

            return(eventComponentName);
        }
Exemple #3
0
        private CodeGenFile Generate(ComponentData data)
        {
            var fullComponentName = data.GetTypeName().RemoveDots();

            return(new CodeGenFile(
                       "Components" +
                       Path.DirectorySeparatorChar +
                       fullComponentName +
                       ".cs",
                       COMPONENT_TEMPLATE
                       .Replace("${FullComponentName}", fullComponentName)
                       .Replace("${Type}", data.GetObjectTypeName()),
                       GetType().FullName));
        }
 public static string Replace(this string template, ComponentData data, string contextName)
 {
     return(template
            .Replace(contextName)
            .Replace("${ComponentType}", data.GetTypeName())
            .Replace("${ComponentName}", data.ComponentName())
            .Replace("${componentName}", data.ComponentName().UppercaseFirst())
            .Replace("${validComponentName}", data.ComponentNameValidUppercaseFirst())
            .Replace("${prefixedComponentName}", data.PrefixedComponentName())
            .Replace("${newMethodParameters}", GetMethodParameters(data.GetMemberData(), true))
            .Replace("${methodParameters}", GetMethodParameters(data.GetMemberData(), false))
            .Replace("${newMethodArgs}", GetMethodArgs(data.GetMemberData(), true))
            .Replace("${methodArgs}", GetMethodArgs(data.GetMemberData(), false))
            .Replace("${Index}", contextName + LOOKUP + "." + data.ComponentName()));
 }
 public static string ComponentName(this ComponentData data)
 {
     return(data.GetTypeName().ToComponentName());
 }