Skip to content

Commit f0d43ea

Browse files
authored
Merge pull request #33 from microsoftgraph/unpluggedk/ios-annotations
For iOS: merging annotations and nullability bugs
2 parents 701f574 + 51aab86 commit f0d43ea

File tree

6 files changed

+35
-9
lines changed

6 files changed

+35
-9
lines changed

Templates/ObjC/Base/SharedObjC.template.tt

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,21 @@ private string GetStaticBaseObject()
241241

242242
private string GeneratePropertyDeclarationLine(OdcmProperty prop)
243243
{
244-
return "@property (nonatomic, setter=" + GetObjCPropertySetter(prop) + ":, getter=" + GetObjCPropertyGetter(prop) + ") " + GetObjCTypeForVarDeclaration(prop) + " " + GetObjCProperty(prop) + ";";
244+
if(prop.IsCollection || prop.IsComplex())
245+
{
246+
if(prop.IsNullable==true)
247+
{
248+
return "@property (nullable, nonatomic, setter=" + GetObjCPropertySetter(prop) + ":, getter=" + GetObjCPropertyGetter(prop) + ") " + GetObjCTypeForVarDeclaration(prop) + " " + GetObjCProperty(prop) + ";";
249+
}
250+
else
251+
{
252+
return "@property (nonnull, nonatomic, setter=" + GetObjCPropertySetter(prop) + ":, getter=" + GetObjCPropertyGetter(prop) + ") " + GetObjCTypeForVarDeclaration(prop) + " " + GetObjCProperty(prop) + ";";
253+
}
254+
}
255+
else
256+
{
257+
return "@property (nonatomic, setter=" + GetObjCPropertySetter(prop) + ":, getter=" + GetObjCPropertyGetter(prop) + ") " + GetObjCTypeForVarDeclaration(prop) + " " + GetObjCProperty(prop) + ";";
258+
}
245259
}
246260

247261
private void PropertyGetterImplementation(OdcmProperty prop)
@@ -252,6 +266,17 @@ private void PropertyGetterImplementation(OdcmProperty prop)
252266
<#+
253267
if(IsObjCTypeSameAsJsonType(prop.Projection.Type))
254268
{
269+
#>
270+
<#+
271+
if(prop.IsNullable==true)
272+
{
273+
#>
274+
if([[NSNull null] isEqual:self.dictionary[@"<#=prop.Name#>"]])
275+
{
276+
return nil;
277+
}
278+
<#+
279+
}
255280
#>
256281
return self.dictionary[@"<#=prop.Name#>"];
257282
<#+
@@ -280,6 +305,7 @@ private void PropertyGetterImplementation(OdcmProperty prop)
280305
}
281306
#>
282307
}
308+
283309
<#+
284310
}
285311

@@ -304,6 +330,7 @@ private void PropertySetterImplementation(OdcmProperty prop)
304330
}
305331
#>
306332
}
333+
307334
<#+
308335
}
309336
#>

Templates/ObjC/Models/ComplexType.h.tt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ var baseEntity = entity.Base;
1515
<#
1616
foreach(var prop in entity.Properties.Where(prop => GetObjCTypeIdentifier(prop)!="NSStream" ))
1717
{
18-
#>
19-
<#=GeneratePropertyDeclarationLine(prop)#>
20-
<#
18+
#>
19+
<#=GeneratePropertyDeclarationLine(prop)#>
20+
<#
2121
}
2222

2323
#>

Templates/ObjC/Models/EntityType.h.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ IEnumerable<string> extraClasses = null;
1717
if (baseEntity == null)
1818
{
1919
#>
20-
@property (nonatomic, setter=setODataType:, getter=oDataType) NSString *oDataType;
20+
@property (nullable, nonatomic, setter=setODataType:, getter=oDataType) NSString *oDataType;
2121
<#
2222
}
2323

Templates/ObjC/Requests/EntityRequestBuilder.h.tt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@ foreach(var prop in entity.Properties.Where( prop => prop.Projection.Type is Odc
193193

194194
<#
195195
}
196-
foreach(var func in entity.Methods)
196+
197+
foreach(var func in entity.MethodsAndOverloads())
197198
{
198199
var methodName = func.Name.Substring(func.Name.IndexOf('.') + 1).ToLowerFirstChar();
199200
var requestBuilderName = writer.GetPrefix() + entity.Name.ToUpperFirstChar() + methodName.ToUpperFirstChar() + "RequestBuilder";
@@ -204,8 +205,6 @@ foreach(var func in entity.Methods)
204205
#>
205206
- (<#=requestBuilderName#> *)<#=methodName#>;
206207

207-
208-
209208
<#
210209

211210
}

Templates/ObjC/Requests/EntityRequestBuilder.m.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ foreach(var prop in entity.Properties.Where( prop => prop.Projection.Type is Odc
115115

116116
}
117117

118-
foreach(var func in entity.Methods)
118+
foreach(var func in entity.MethodsAndOverloads())
119119
{
120120
var methodName = func.Name.Substring(func.Name.IndexOf('.') + 1).ToLowerFirstChar();
121121
var requestBuilderName = writer.GetPrefix() + entity.Name.ToUpperFirstChar() + methodName.ToUpperFirstChar() + "RequestBuilder";

graphmetadata2.xml

100644100755
File mode changed.

0 commit comments

Comments
 (0)