44<#@ output extension="\\" #>
55<#host.TemplateName = BaseTypeRequestBuilder(c);#>
66<#=writer.WriteHeader()#>
7- <#=CreatePackageDef(host)#>
7+ <#=CreatePackageDefForBaseEntityRequestBuilder(host)#>
8+ import com.microsoft.graph.core.IBaseClient;
9+ import com.microsoft.graph.http.BaseRequestBuilder;
10+ import com.microsoft.graph.options.Option;
811
912<#=CreateClassDef(BaseTypeRequestBuilder(c), "BaseRequestBuilder", IBaseTypeRequestBuilder(c))#>
1013
@@ -133,3 +136,130 @@ if (c.AsOdcmClass() != null)
133136}
134137#>
135138}
139+
140+ <#+
141+ public string CreatePackageDefForBaseEntityRequestBuilder(CustomT4Host host)
142+ {
143+ var sb = new StringBuilder();
144+ sb.Append(CreatePackageDefinition(host));
145+
146+ var importFormat = @"import {0}.{1}.{2};";
147+ sb.AppendFormat(importFormat,
148+ host.CurrentModel.NamespaceName(),
149+ "requests.extensions",
150+ ITypeRequest(host.CurrentType));
151+ sb.Append("\n");
152+ sb.AppendFormat(importFormat,
153+ host.CurrentModel.NamespaceName(),
154+ "requests.extensions",
155+ TypeRequest(host.CurrentType));
156+ sb.Append("\n");
157+ var c = host.CurrentType;
158+ if (c.AsOdcmClass() != null)
159+ {
160+ foreach(var prop in c.AsOdcmClass().NavigationProperties())
161+ {
162+ if (prop.IsCollection()) {
163+
164+ sb.AppendFormat(importFormat,
165+ host.CurrentModel.NamespaceName(),
166+ "requests.extensions",
167+ ITypeCollectionRequestBuilder(prop));
168+ sb.Append("\n");
169+
170+ sb.AppendFormat(importFormat,
171+ host.CurrentModel.NamespaceName(),
172+ "requests.extensions",
173+ TypeCollectionRequestBuilder(prop));
174+ sb.Append("\n");
175+ }
176+ sb.AppendFormat(importFormat,
177+ host.CurrentModel.NamespaceName(),
178+ "requests.extensions",
179+ ITypeRequestBuilder(prop));
180+ sb.Append("\n");
181+
182+ sb.AppendFormat(importFormat,
183+ host.CurrentModel.NamespaceName(),
184+ "requests.extensions",
185+ TypeRequestBuilder(prop));
186+ sb.Append("\n");
187+ }
188+
189+ foreach (var prop in c.AsOdcmClass().GetProperties(typeName:"Stream"))
190+ {
191+ var propRequestBuilder = TypeRequestBuilder(prop);
192+ sb.AppendFormat(importFormat,
193+ host.CurrentModel.NamespaceName(),
194+ "requests.extensions",
195+ "I" + propRequestBuilder);
196+ sb.Append("\n");
197+
198+ sb.AppendFormat(importFormat,
199+ host.CurrentModel.NamespaceName(),
200+ "requests.extensions",
201+ propRequestBuilder);
202+ sb.Append("\n");
203+ }
204+
205+ if (c is OdcmMediaClass)
206+ {
207+ sb.AppendFormat(importFormat,
208+ host.CurrentModel.NamespaceName(),
209+ "requests.extensions",
210+ ITypeStreamRequestBuilder(host.CurrentType));
211+ sb.Append("\n");
212+
213+ sb.AppendFormat(importFormat,
214+ host.CurrentModel.NamespaceName(),
215+ "requests.extensions",
216+ TypeStreamRequestBuilder(host.CurrentType));
217+ sb.Append("\n");
218+ }
219+
220+ foreach (var method in c.AsOdcmClass().MethodsAndOverloads()) {
221+ if (method.IsBoundToCollection) {
222+ continue;
223+ }
224+
225+ foreach (var p in method.Parameters)
226+ {
227+ if(!(p.Type is OdcmPrimitiveType) && p.Type.GetTypeString() != "com.google.gson.JsonElement") {
228+ sb.AppendFormat(importFormat,
229+ host.CurrentModel.NamespaceName(),
230+ getPackagePrefix(p),
231+ p.Type.GetTypeString());
232+ sb.Append("\n");
233+ }
234+ }
235+
236+ if (method.IsCollection) {
237+ sb.AppendFormat(importFormat,
238+ host.CurrentModel.NamespaceName(),
239+ "requests.extensions",
240+ ITypeCollectionRequestBuilder(method));
241+ sb.Append("\n");
242+
243+ sb.AppendFormat(importFormat,
244+ host.CurrentModel.NamespaceName(),
245+ "requests.extensions",
246+ TypeCollectionRequestBuilder(method));
247+ sb.Append("\n");
248+ } else {
249+ sb.AppendFormat(importFormat,
250+ host.CurrentModel.NamespaceName(),
251+ "requests.extensions",
252+ ITypeRequestBuilder(method));
253+ sb.Append("\n");
254+
255+ sb.AppendFormat(importFormat,
256+ host.CurrentModel.NamespaceName(),
257+ "requests.extensions",
258+ TypeRequestBuilder(method));
259+ sb.Append("\n");
260+ }
261+ }
262+ }
263+ return sb.ToString();
264+ }
265+ #>
0 commit comments