diff --git a/Templates/Java/BaseJavaModel.template.tt b/Templates/Java/BaseJavaModel.template.tt index 009308342..d3e8cf791 100644 --- a/Templates/Java/BaseJavaModel.template.tt +++ b/Templates/Java/BaseJavaModel.template.tt @@ -556,6 +556,17 @@ return getPrefixForModels(propertyType); } + //Get package prefix using OdcmProperty for model classes + public string getPackagePrefix(OdcmParameter property) + { + var propertyType = property.GetTypeString(); + + if(property.Type is OdcmEnum) + return "models.generated"; + + return getPrefixForModels(propertyType); + } + public string CreatePackageDefinition(CustomT4Host host) { var sb = new StringBuilder(); @@ -567,6 +578,51 @@ return sb.ToString(); } + public string CreatePackageDefForBaseEntityCollectionResponse(CustomT4Host host) + { + var sb = new StringBuilder(); + sb.Append(CreatePackageDefinition(host)); + var importFormat = @"import {0}.{1}.{2};"; + sb.AppendFormat(importFormat, + host.CurrentModel.NamespaceName(), + "models.extensions", + TypeName(host.CurrentType)); + sb.Append("\n"); + return sb.ToString(); + } + + public string CreatePackageDefForBaseMethodRequestBuilder(CustomT4Host host) + { + var sb = new StringBuilder(); + sb.Append(CreatePackageDefinition(host)); + var importFormat = @"import {0}.{1}.{2};"; + sb.AppendFormat(importFormat, + host.CurrentModel.NamespaceName(), + "requests.extensions", + ITypeRequest(host.CurrentType)); + sb.Append("\n"); + + sb.AppendFormat(importFormat, + host.CurrentModel.NamespaceName(), + "requests.extensions", + TypeRequest(host.CurrentType)); + sb.Append("\n"); + + foreach (var method in host.CurrentType.AsOdcmMethod().WithOverloads()) { + foreach (var p in method.Parameters) + { + if(!(p.Type is OdcmPrimitiveType) && p.Type.GetTypeString() != "com.google.gson.JsonElement") { + sb.AppendFormat(importFormat, + host.CurrentModel.NamespaceName(), + getPackagePrefix(p), + p.Type.GetTypeString()); + sb.Append("\n"); + } + } + } + return sb.ToString(); + } + public string CreatePackageDefForIBaseMethodBodyRequest(CustomT4Host host) { var sb = new StringBuilder(); diff --git a/Templates/Java/requests_generated/BaseEntityCollectionResponse.java.tt b/Templates/Java/requests_generated/BaseEntityCollectionResponse.java.tt index d73e508cf..cbaf75729 100644 --- a/Templates/Java/requests_generated/BaseEntityCollectionResponse.java.tt +++ b/Templates/Java/requests_generated/BaseEntityCollectionResponse.java.tt @@ -4,11 +4,14 @@ <#@ output extension="\\" #> <#host.TemplateName = BaseTypeCollectionResponse(c);#> <#=writer.WriteHeader()#> -<#=CreatePackageDef(host)#> - +<#=CreatePackageDefForBaseEntityCollectionResponse(host)#> import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import com.google.gson.annotations.*; +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; +import com.microsoft.graph.serializer.AdditionalDataManager; +import com.microsoft.graph.serializer.IJsonBackedObject; +import com.microsoft.graph.serializer.ISerializer; <#=CreateClassDef(BaseTypeCollectionResponse(c), null, "IJsonBackedObject")#> diff --git a/Templates/Java/requests_generated/BaseMethodRequestBuilder.java.tt b/Templates/Java/requests_generated/BaseMethodRequestBuilder.java.tt index 3f133b871..49a96e3b7 100644 --- a/Templates/Java/requests_generated/BaseMethodRequestBuilder.java.tt +++ b/Templates/Java/requests_generated/BaseMethodRequestBuilder.java.tt @@ -4,7 +4,14 @@ <#@ output extension="\\" #> <#host.TemplateName = BaseTypeRequestBuilder(c);#> <#=writer.WriteHeader()#> -<#=CreatePackageDef(host)#> +<#=CreatePackageDefForBaseMethodRequestBuilder(host)#> +import com.microsoft.graph.core.BaseActionRequestBuilder; +import com.microsoft.graph.core.BaseFunctionRequestBuilder; +import com.microsoft.graph.core.IBaseClient; +import com.microsoft.graph.options.Option; +import com.microsoft.graph.options.FunctionOption; +import com.google.gson.JsonElement; + <# bool isAction = !c.AsOdcmMethod().IsFunction; #> <#=CreateClassDef(BaseTypeRequestBuilder(c), RequestBuilderSuperClass(c))#>