private void WriteProperty(StreamWriter writer, PropertyInfo property) { writer.WriteLine(); writer.WriteLine(); string typeName = JavaHelper.GetTypeName(property.PropertyType); if (property.CanRead && property.GetGetMethod().IsPublic) { writer.WriteLine("public {0} get{1}()", typeName, property.Name); writer.WriteLine("{"); writer.WriteLine(" return this.{0};", JavaHelper.GetCammelCase(property.Name)); writer.WriteLine("}"); } writer.WriteLine(); writer.WriteLine(); if (property.CanWrite && property.GetSetMethod() != null && property.GetSetMethod().IsPublic) { writer.WriteLine("public void set{0}({1} value)", property.Name, typeName); writer.WriteLine("{"); writer.WriteLine(" this.{0} = value;", JavaHelper.GetCammelCase(property.Name)); writer.WriteLine("}"); } }
private void WriteField(StreamWriter writer, PropertyInfo property) { string typeName = JavaHelper.GetTypeName(property.PropertyType); string name = JavaHelper.GetCammelCase(property.Name); writer.WriteLine(" private {0} {1};", typeName, name); }
private void WriteConstructor(StreamWriter writer) { writer.WriteLine(); writer.WriteLine("//<editor-fold defaultstate=\"collapsed\" desc=\"Constructor\">"); if (ComponentType.IsSubclassOf(typeof(EventArgs))) { List <string> fields = new List <string>(); writer.Write("public {0}(Object source", className); foreach (var property in ComponentType.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) { string typeName = JavaHelper.GetTypeName(property.PropertyType); string fieldName = JavaHelper.GetCammelCase(property.Name); writer.Write(", {0} {1}", typeName, fieldName); fields.Add(fieldName); } writer.WriteLine(")"); writer.WriteLine("{"); writer.WriteLine(" super(source);"); foreach (var fieldName in fields) { writer.WriteLine(" this.{0} = {0};", fieldName); } writer.WriteLine("}"); } else if (ComponentType.IsSubclassOf(typeof(ACBrComposedComponent))) { } writer.WriteLine(); writer.WriteLine(); writer.WriteLine("//</editor-fold>"); }
private void WriteMethod(StreamWriter writer, MethodInfo method) { writer.WriteLine(); writer.WriteLine(); string returnName = JavaHelper.GetTypeName(method.ReturnType); string methodName = JavaHelper.GetCammelCase(method.Name); writer.WriteLine("public {0} {1}({2}) throws ACBrException", returnName, methodName, JavaHelper.GetMethodDeclarationParamList(method)); writer.WriteLine("{"); WriteMethodBody(writer, method); writer.WriteLine("}"); }
private void WriteEvent(StreamWriter writer, EventInfo eventInfo) { string eventName = JavaHelper.GetCammelCase(eventInfo.Name); writer.WriteLine("//<editor-fold defaultstate=\"collapsed\" desc=\"{0}\">", eventName); Type eventArgs; if (eventInfo.EventHandlerType == typeof(EventHandler)) { eventArgs = typeof(EventArgs); } else { eventArgs = eventInfo.EventHandlerType.GetGenericArguments()[0]; } string eventArgsName = eventArgs.Name.Replace("EventArgs", "EventObject"); string interopCallbackName = eventArgs.Name.Replace("EventArgs", "Callback"); Type interopDelegateType = InteropType.GetNestedType(interopCallbackName); MethodInfo interopDelegate = interopDelegateType.GetMethod("Invoke"); writer.WriteLine("public void add{0}(ACBrEventListener<{1}> listener)", eventInfo.Name, eventArgsName); writer.WriteLine("{"); writer.WriteLine(" if (!hasListeners(\"{0}\"))", eventName); writer.WriteLine(" {"); writer.WriteLine(" {0}.INSTANCE.{1}_Set{2}(getHandle(), new {0}.{3}()", interopClassName, interopPrefix, eventInfo.Name, interopCallbackName); writer.WriteLine(" {"); writer.WriteLine(" @Override"); writer.WriteLine(" public void invoke({0})", JavaHelper.GetMethodDeclarationParamList(interopDelegate)); writer.WriteLine(" {"); writer.WriteLine(" {0}({1});", eventName, JavaHelper.GetInteropMethodParamInvocationList(interopDelegate)); writer.WriteLine(" }"); writer.WriteLine(" });"); writer.WriteLine(" }"); writer.WriteLine(""); writer.WriteLine(" addListener(\"{0}\", listener);", eventName); writer.WriteLine("}"); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine("public void remove{0}(ACBrEventListener<{1}> listener)", eventInfo.Name, eventArgsName); writer.WriteLine("{"); writer.WriteLine(" removeListener(\"{0}\", listener);", eventName); writer.WriteLine(""); writer.WriteLine(" if (!hasListeners(\"{0}\"))", eventName); writer.WriteLine(" {"); writer.WriteLine(" {0}.INSTANCE.{1}_Set{2}(getHandle(), null);", interopClassName, interopPrefix, eventInfo.Name); writer.WriteLine(" }"); writer.WriteLine("}"); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine("private void {0}({1})", eventName, JavaHelper.GetMethodDeclarationParamList(interopDelegate)); writer.WriteLine("{"); writer.WriteLine(" {0} e = new {0}(this{1});", eventArgsName, JavaHelper.GetMethodParamInvocationList(interopDelegate)); writer.WriteLine(" notifyListeners(\"{0}\", e);", eventName); writer.WriteLine("}"); writer.WriteLine(); writer.WriteLine(); writer.WriteLine("//</editor-fold>"); }