public ServiceContext ServiceFromLean(Service service) { var name = MangleJavaTypeName(service.Name); var javaType = typeRegistry.FindType(defaultNamespace, name); var javaParents = new HashSet<string>(); var serviceContext = new ServiceContext(name, javaType.Package, javaType.SimpleName, javaParents); //javaParents.Add("java.io.Serializable"); return serviceContext; }
public ServiceContext ServiceFromTrip(Service service) { var name = MangleCSharpTypeName(service.Name); var csharpType = typeRegistry.FindType(defaultNamespace, name); var csharpParents = new HashSet<string>(); var serviceContext = new ServiceContext(name, csharpType.TypeNamespace, csharpType.TypeName, csharpParents); if (generatorConfig.ContainsTweak(GeneratorTweak.ADD_DISPOSABLE_INTERFACE)) { csharpParents.Add("IDisposable"); //serviceContext.AddMethod(DISPOSE_METHOD_CONTEXT); } return serviceContext; }
public void Visit(Service service) { sb.Append("Service ").Append(service.Name); sb.AppendLine(" {"); foreach (var method in service.Methods) { Visit(method); sb.AppendLine(); } sb.AppendLine("}"); }
public void Visit(Service service) { var serviceContext = contextGenerator.ServiceFromLean(service); foreach (var method in service.Methods) { var methodContext = contextGenerator.MethodFromLean(method); serviceContext.AddMethod(methodContext); } Render(serviceContext, "service"); }
public void Visit(Service service) { throw new NotImplementedException(); }
public static List<Definition> BuildDefinitions(ParseTreeNodeList definitionNodes) { var definitions = new List<Definition>(); foreach (var definitionNode in definitionNodes) { var definitionChildNode = definitionNode.ChildNodes[0]; if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TENUM) { var enumId = definitionChildNode.ChildNodes[0].Token.Text; var enumFields = new List<IntegerEnumField>(); int nextDefaultEnumValue = 0; // trip enumerations start at zero by default foreach (var enumFieldNode in definitionChildNode.ChildNodes[1].ChildNodes) { var enumFeildId = enumFieldNode.ChildNodes[0].Token.Text; IntegerEnumField enumField = null; if (enumFieldNode.ChildNodes.Count > 1 && enumFieldNode.ChildNodes[1].ChildNodes != null && enumFieldNode.ChildNodes[1].ChildNodes.Count > 0) // has enum value { var valueText = enumFieldNode.ChildNodes[1].ChildNodes[0].Token.Text; int enumValue = int.Parse(valueText); enumField = new IntegerEnumField(enumFeildId, enumValue, nextDefaultEnumValue); nextDefaultEnumValue = ++enumValue; } else { enumField = new IntegerEnumField(enumFeildId, null, nextDefaultEnumValue); ++nextDefaultEnumValue; } enumFields.Add(enumField); } var integerEnum = new IntegerEnum(enumId, enumFields); definitions.Add(integerEnum); } else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSTRUCT) { var name = definitionChildNode.ChildNodes[0].Token.Text; var tripFields = BuildTripFields(definitionChildNode.ChildNodes[1], name); var tripStruct = new Struct(name, tripFields); definitions.Add(tripStruct); } else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSERVICE) { var name = definitionChildNode.ChildNodes[0].Token.Text; List<TripMethod> methods = new List<TripMethod>(); var firstChild = definitionChildNode.ChildNodes[1]; if (firstChild.Term.Name == IdlGrammar.NTNAME_FUNCTIONS) { methods = BuildTripMethods(definitionChildNode.ChildNodes[1]); } var service = new Service(name, methods); definitions.Add(service); } } return definitions; }