Skip to content

Commit 274e9dd

Browse files
authored
Merge pull request #138 from microsoftgraph/java-memory-fix
Java template fix to reduce memory footprint - continued
2 parents bdd97cd + fc2d030 commit 274e9dd

File tree

3 files changed

+70
-4
lines changed

3 files changed

+70
-4
lines changed

Templates/Java/BaseJavaModel.template.tt

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,17 @@
556556
return getPrefixForModels(propertyType);
557557
}
558558

559+
//Get package prefix using OdcmProperty for model classes
560+
public string getPackagePrefix(OdcmParameter property)
561+
{
562+
var propertyType = property.GetTypeString();
563+
564+
if(property.Type is OdcmEnum)
565+
return "models.generated";
566+
567+
return getPrefixForModels(propertyType);
568+
}
569+
559570
public string CreatePackageDefinition(CustomT4Host host)
560571
{
561572
var sb = new StringBuilder();
@@ -567,6 +578,51 @@
567578
return sb.ToString();
568579
}
569580

581+
public string CreatePackageDefForBaseEntityCollectionResponse(CustomT4Host host)
582+
{
583+
var sb = new StringBuilder();
584+
sb.Append(CreatePackageDefinition(host));
585+
var importFormat = @"import {0}.{1}.{2};";
586+
sb.AppendFormat(importFormat,
587+
host.CurrentModel.NamespaceName(),
588+
"models.extensions",
589+
TypeName(host.CurrentType));
590+
sb.Append("\n");
591+
return sb.ToString();
592+
}
593+
594+
public string CreatePackageDefForBaseMethodRequestBuilder(CustomT4Host host)
595+
{
596+
var sb = new StringBuilder();
597+
sb.Append(CreatePackageDefinition(host));
598+
var importFormat = @"import {0}.{1}.{2};";
599+
sb.AppendFormat(importFormat,
600+
host.CurrentModel.NamespaceName(),
601+
"requests.extensions",
602+
ITypeRequest(host.CurrentType));
603+
sb.Append("\n");
604+
605+
sb.AppendFormat(importFormat,
606+
host.CurrentModel.NamespaceName(),
607+
"requests.extensions",
608+
TypeRequest(host.CurrentType));
609+
sb.Append("\n");
610+
611+
foreach (var method in host.CurrentType.AsOdcmMethod().WithOverloads()) {
612+
foreach (var p in method.Parameters)
613+
{
614+
if(!(p.Type is OdcmPrimitiveType) && p.Type.GetTypeString() != "com.google.gson.JsonElement") {
615+
sb.AppendFormat(importFormat,
616+
host.CurrentModel.NamespaceName(),
617+
getPackagePrefix(p),
618+
p.Type.GetTypeString());
619+
sb.Append("\n");
620+
}
621+
}
622+
}
623+
return sb.ToString();
624+
}
625+
570626
public string CreatePackageDefForIBaseMethodBodyRequest(CustomT4Host host)
571627
{
572628
var sb = new StringBuilder();

Templates/Java/requests_generated/BaseEntityCollectionResponse.java.tt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
<#@ output extension="\\" #>
55
<#host.TemplateName = BaseTypeCollectionResponse(c);#>
66
<#=writer.WriteHeader()#>
7-
<#=CreatePackageDef(host)#>
8-
7+
<#=CreatePackageDefForBaseEntityCollectionResponse(host)#>
98
import com.google.gson.JsonArray;
109
import com.google.gson.JsonObject;
11-
import com.google.gson.annotations.*;
10+
import com.google.gson.annotations.Expose;
11+
import com.google.gson.annotations.SerializedName;
12+
import com.microsoft.graph.serializer.AdditionalDataManager;
13+
import com.microsoft.graph.serializer.IJsonBackedObject;
14+
import com.microsoft.graph.serializer.ISerializer;
1215

1316
<#=CreateClassDef(BaseTypeCollectionResponse(c), null, "IJsonBackedObject")#>
1417

Templates/Java/requests_generated/BaseMethodRequestBuilder.java.tt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44
<#@ output extension="\\" #>
55
<#host.TemplateName = BaseTypeRequestBuilder(c);#>
66
<#=writer.WriteHeader()#>
7-
<#=CreatePackageDef(host)#>
7+
<#=CreatePackageDefForBaseMethodRequestBuilder(host)#>
8+
import com.microsoft.graph.core.BaseActionRequestBuilder;
9+
import com.microsoft.graph.core.BaseFunctionRequestBuilder;
10+
import com.microsoft.graph.core.IBaseClient;
11+
import com.microsoft.graph.options.Option;
12+
import com.microsoft.graph.options.FunctionOption;
13+
import com.google.gson.JsonElement;
14+
815
<# bool isAction = !c.AsOdcmMethod().IsFunction; #>
916
<#=CreateClassDef(BaseTypeRequestBuilder(c), RequestBuilderSuperClass(c))#>
1017

0 commit comments

Comments
 (0)