PageRenderTime 23ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/Trunk/TemplateSupport/TemplateSupport/LinqTemplatesCommon.vb

http://GenDotNet.codeplex.com
Visual Basic | 249 lines | 102 code | 32 blank | 115 comment | 0 complexity | 33e061246037c73243b80100ab918ffa MD5 | raw file
  1. Option Strict On
  2. Option Explicit On
  3. Option Infer On
  4. Imports System
  5. Imports System.Collections.Generic
  6. Imports System.Linq
  7. Imports System.Xml.Linq
  8. Imports GenDotNet.TemplateSupport
  9. Imports GenDotNet.Task.Common
  10. Imports GenDotNet.TemplateSupport.StandardAttributeExtensions
  11. Imports GenDotNet.TemplateSupport.VB
  12. Imports <xmlns="http://kadgen.com/tempCode.xsd">
  13. Public Class Support
  14. Private Const vbcrlf As String = Microsoft.VisualBasic.ControlChars.CrLf
  15. 'Public Shared Function StandardVBClassOpening( _
  16. ' ByVal className As String) _
  17. ' As String
  18. ' Return StandardVBClassOpening(className, Nothing, Nothing, Nothing)
  19. 'End Function
  20. 'Public Shared Function StandardVBClassOpening( _
  21. ' ByVal className As String, _
  22. ' ByVal importList As List(Of String)) _
  23. ' As String
  24. ' Return StandardVBClassOpening(className, importList, Nothing, Nothing)
  25. 'End Function
  26. 'Public Shared Function StandardVBClassOpening( _
  27. ' ByVal className As String, _
  28. ' ByVal importList As List(Of String), _
  29. ' ByVal attributes As StandardAttributes) _
  30. ' As String
  31. ' Return StandardVBClassOpening(className, importList, attributes, Nothing)
  32. 'End Function
  33. 'Public Shared Function StandardVBClassOpening( _
  34. ' ByVal className As String, _
  35. ' ByVal importList As List(Of String), _
  36. ' ByVal attributes As StandardAttributes, _
  37. ' ByVal nspace As String) _
  38. ' As String
  39. ' Dim code = <code>
  40. ' <%= StandardVBOpening(importList, nspace) %>
  41. ' <%= attributes.OutputVb() %>
  42. ' <%= "" %> Public Class <%= className %>
  43. ' </code>
  44. ' Return code.Value
  45. 'End Function
  46. 'Public Shared Function StandardVBInterfaceOpening( _
  47. ' ByVal interfaceName As String) _
  48. ' As String
  49. ' Return StandardVBInterfaceOpening(interfaceName, Nothing, Nothing, Nothing)
  50. 'End Function
  51. 'Public Shared Function StandardVBInterfaceOpening( _
  52. ' ByVal interfaceName As String, _
  53. ' ByVal importList As List(Of String), _
  54. ' ByVal attributes As StandardAttributes) _
  55. ' As String
  56. ' Return StandardVBInterfaceOpening(interfaceName, importList, attributes, Nothing)
  57. 'End Function
  58. 'Public Shared Function StandardVBInterfaceOpening( _
  59. ' ByVal interfaceName As String, _
  60. ' ByVal importList As List(Of String), _
  61. ' ByVal attributes As StandardAttributes, _
  62. ' ByVal nspace As String) _
  63. ' As String
  64. ' Dim code = <code>
  65. ' <%= StandardVBOpening(importList, nspace) %>
  66. ' <%= attributes.OutputVb() %>
  67. ' <%= "" %> Public Interface <%= interfaceName %>
  68. ' </code>
  69. ' Return code.Value
  70. 'End Function
  71. 'Public Shared Function StandardVBOpening( _
  72. ' ByVal importList As List(Of String)) _
  73. ' As String
  74. ' Return StandardVBOpening(importList, Nothing)
  75. 'End Function
  76. ' Public Shared Function StandardVBOpening( _
  77. ' ByVal importList As List(Of String), _
  78. ' ByVal nspace As String) _
  79. ' As String
  80. ' Dim code = <code>
  81. 'Option Strict On
  82. 'Option Explicit On
  83. 'Option Infer On
  84. 'Imports System
  85. '<%= OutputImports(importList) %>
  86. ' <%= OutputNamespace(nspace) %>
  87. ' </code>
  88. ' Return code.Value
  89. ' End Function
  90. ' Public Shared Function StandardVBClassClose() As String
  91. ' Return StandardVBClassClose(Nothing)
  92. ' End Function
  93. ' Public Shared Function StandardVBClassClose(ByVal nspace As String) As String
  94. ' Return <code>
  95. ' End Class
  96. '<%= If(String.IsNullOrEmpty(nspace), "", <code>
  97. 'End Namespace
  98. ' </code>.Value) %>
  99. ' </code>.Value
  100. ' End Function
  101. ' Public Shared Function StandardVBInterfaceClose() As String
  102. ' Return StandardVBInterfaceClose(Nothing)
  103. ' End Function
  104. ' Public Shared Function StandardVBInterfaceClose(ByVal nspace As String) As String
  105. ' Return <code>
  106. ' End Interface
  107. '<%= If(String.IsNullOrEmpty(nspace), "", <code>
  108. 'End Namespace
  109. ' </code>.Value) %>
  110. ' </code>.Value
  111. ' End Function
  112. 'Public Shared Function GetSerializeAttributeString() As String
  113. ' Return "<Serializable> _"
  114. 'End Function
  115. ' Public Shared Function OutputNamespace(ByVal nspace As String) As String
  116. ' Return <code>
  117. ' <%= If(String.IsNullOrEmpty(nspace), "", _
  118. ' <code>
  119. 'Namespace <%= nspace %>
  120. ' </code>.Value) %>
  121. ' </code>.Value
  122. ' End Function
  123. ' Public Shared Function OutputImports(ByVal importList As List(Of String)) As String
  124. ' Return <code>
  125. ' <%= From import In importList Select _
  126. ' <code>
  127. 'Imports <%= import %></code> %>.Value
  128. '</code>.Value & vbCrLf
  129. ' End Function
  130. Public Shared Function OutputFunctionOpen( _
  131. ByVal scope As Scope, _
  132. ByVal functionName As String, _
  133. ByVal returnType As String, _
  134. ByVal parameters As List(Of ParamInfo)) _
  135. As String
  136. Return <code>
  137. <%= New String(" "c, 9) %><%= scope.Output() %> Function <%= functionName %><%= OutputParameterDeclarations(parameters) %> _
  138. As <%= returnType %>
  139. </code>.Value
  140. End Function
  141. Public Shared Function OutputSubOpen( _
  142. ByVal scope As Scope, _
  143. ByVal subName As String, _
  144. ByVal parameters As List(Of ParamInfo)) _
  145. As String
  146. Return <code>
  147. <%= New String(" "c, 9) %><%= scope.Output() %> Sub <%= subName %><%= OutputParameterDeclarations(parameters) %>
  148. </code>.Value
  149. End Function
  150. Public Shared Function OutputParameterDeclarations(ByVal parameters As List(Of ParamInfo)) As String
  151. If parameters.Count = 0 Then
  152. Return "()"
  153. Else
  154. Return <code>( _
  155. <%= From par In parameters _
  156. Let last = parameters.Last _
  157. Select _
  158. <code> ByVal <%= par.name %> As <%= par.type %><%= CommaListEnding(last, par) %></code>.Value %>)</code>.Value
  159. End If
  160. End Function
  161. Public Shared Function OutputParameterList(ByVal parameters As List(Of ParamInfo)) As String
  162. If parameters.Count = 0 Then
  163. Return "()"
  164. Else
  165. Return <code>(<%= From par In parameters _
  166. Let last = parameters.Last _
  167. Select _
  168. <code><%= " " %><%= par.name %><%= CommaListEndingNoWrap(last, par) %>
  169. </code>.Value %>)</code>.Value
  170. End If
  171. End Function
  172. Public Shared Function CommaListEndingNoWrap(ByVal last As Object, ByVal par As Object) As String
  173. Return CommaListEnding(last, par, False)
  174. End Function
  175. Public Shared Function CommaListEnding(ByVal last As Object, ByVal par As Object) As String
  176. Return CommaListEnding(last, par, True)
  177. End Function
  178. Public Shared Function CommaListEnding(ByVal last As Object, ByVal par As Object, ByVal wrap As Boolean) As String
  179. If last IsNot Nothing AndAlso last IsNot par Then
  180. Return ", " & If(wrap, "_" & vbcrlf, "")
  181. Else
  182. Return String.Empty
  183. End If
  184. End Function
  185. Public Shared Function LiteralEndingNoWrap( _
  186. ByVal literal As String, _
  187. ByVal last As Object, _
  188. ByVal par As Object) _
  189. As String
  190. Return LiteralEnding(literal, last, par, False)
  191. End Function
  192. Public Shared Function LiteralEnding( _
  193. ByVal literal As String, _
  194. ByVal last As Object, _
  195. ByVal par As Object) _
  196. As String
  197. Return LiteralEnding(literal, last, par, True)
  198. End Function
  199. Public Shared Function LiteralEnding( _
  200. ByVal literal As String, _
  201. ByVal last As Object, _
  202. ByVal par As Object, _
  203. ByVal wrap As Boolean) _
  204. As String
  205. If last IsNot Nothing AndAlso last IsNot par Then
  206. Return literal & If(wrap, " _" & vbcrlf, "")
  207. Else
  208. Return String.Empty
  209. End If
  210. End Function
  211. Public Shared Function GetEnumValue(Of T)(ByVal value As String) As T
  212. If String.IsNullOrEmpty(value) Then
  213. Return CType([Enum].Parse(GetType(T), "None"), T)
  214. End If
  215. Return CType([Enum].Parse(GetType(T), value), T)
  216. End Function
  217. End Class