示例#1
0
        public void Visit(Document document)
        {
            foreach (var definition in document.Definitions)
            {
                var javaType = new JavaType(documentContext.Namespace, TemplateContextGenerator.MangleJavaTypeName(definition.Name), javaNamespace);
                if (definition is Struct)
                {
                    javaType.IsLeanStruct = true;
                }
                else if (definition is IntegerEnum)
                {
                    javaType.IsLeanEnum = true;
                }

                LOG.Debug(string.Format("Registering type '{0}'", javaType));
                documentContext.TypeRegistry.Add(javaType);
            }
        }
            private JavaType FindJavaTypeFromIdentifierType(IdentifierType id)
            {
                var name = id.Name;
                // the name is [<trip-namespace>.]<trip type>
                var names = new List <string>(name.Split('.'));

                if (names.Count == 0 || names.Count > 3)
                {
                    throw new ArgumentException("Only unqualified and trip-namespace qualified names are allowed!");
                }
                string tripName      = names[0];
                string tripNamespace = typeToJavaConverter._namespace;

                if (names.Count == 2)
                {
                    tripName      = names[1];
                    tripNamespace = names[0];
                }

                var javaTypeName = tripNamespace + "." + TemplateContextGenerator.MangleJavaTypeName(tripName);
                var javaType     = typeToJavaConverter.typeRegistry.FindType(javaTypeName);

                return(javaType);
            }