Skip to content

Commit a96b324

Browse files
author
FAREAST\vidadhee
committed
Change for ObjC Model generation.
1 parent cd49401 commit a96b324

File tree

7 files changed

+302
-38
lines changed

7 files changed

+302
-38
lines changed

Templates/ObjC/Base/SharedObjC.template.tt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ private string GetJsonToObjCExpressionConversion(string expr,OdcmProperty prop)
136136
expr);
137137
}
138138

139+
if(type.Name == "Byte")
140+
{
141+
return expr;
142+
}
143+
139144
return String.Format(
140145
@"[{0} {1}]",
141146
expr,
@@ -203,15 +208,15 @@ private string GetHydratedIVarFromDictionary(OdcmProperty prop)
203208

204209
if ([{0} isKindOfClass:[NSArray class]]){{
205210
for (id {2} in {0}){{
206-
[{0}Result addObject:{3}];
211+
[{0}Result addObject:{2}];
207212
}}
208213
}}
209214

210215
_{0} = {0}Result;
211216
",
212217
GetObjCProperty(prop),
213218
prop.Name,
214-
prop.Projection.Type.Name.ToLowerFirstChar(),
219+
"temp"+prop.Projection.Type.Name.ToUpperFirstChar(),
215220
GetJsonToObjCExpressionConversion(prop.Projection.Type.Name.ToLowerFirstChar(), prop));
216221
}
217222

Templates/ObjC/Models/EnumType.m.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var typeName = GetObjCTypeIdentifier(entity);
77
var valueTypeName = typeName + "Value";
88
#>
99

10-
#include <<#=typeName#>.h>
10+
#import "<#=typeName#>.h"
1111

1212
@interface <#=typeName#> () {
1313
<#=valueTypeName#> _enumValue;

Templates/Templates.csproj

Lines changed: 274 additions & 1 deletion
Large diffs are not rendered by default.

src/GraphODataTemplateWriter/.config/ObjCSettings.json

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,37 +10,12 @@
1010

1111
{ "Template": "EntityType", "SubProcessor": "EntityType", "Type": "Model", "Name": "<Class>" },
1212
{ "Template": "ComplexType", "SubProcessor": "ComplexType", "Type": "Model", "Name": "<Class>", "Ignore": "methodResponse" },
13-
{ "Template": "EnumType", "SubProcessor": "EnumType", "Type": "Model", "Name": "<Class>" },
14-
{ "Template": "EntityRequest", "SubProcessor": "EntityType", "Type": "Request", "Name": "<Class>Request" },
15-
{ "Template": "EntityRequestBuilder", "SubProcessor": "EntityType", "Type": "Request", "Name": "<Class>RequestBuilder" },
16-
{ "Template": "StreamRequest", "SubProcessor": "StreamProperty", "Type": "Request", "Name": "<Class><Property>Request" },
17-
{ "Template": "MethodRequest", "SubProcessor": "Method", "Type": "Request", "Name": "<Class><Method>Request" },
18-
{ "Template": "MethodRequestBuilder", "SubProcessor": "Method", "Type": "Request", "Name": "<Class><Method>RequestBuilder" }
13+
{ "Template": "EnumType", "SubProcessor": "EnumType", "Type": "Model", "Name": "<Class>" }
1914
],
2015

2116
"ObjC": [
2217
{ "Template": "Models", "SubProcessor": "Other", "Type": "Model", "Name": "Models" },
23-
{ "Template": "ODataEntities", "SubProcessor": "Other", "Type": "Model", "Name": "ODataEntities" },
24-
25-
{ "Template": "StreamRequest", "SubProcessor": "MediaEntityType", "Type": "Request", "Name": "<Class>StreamRequest" },
26-
27-
{ "Template": "EntityWithReferenceRequest", "SubProcessor": "EntityReferenceType", "Type": "Request", "Name": "<Class>WithReferenceRequest" },
28-
{ "Template": "EntityWithReferenceRequestBuilder", "SubProcessor": "EntityReferenceType", "Type": "Request", "Name": "<Class>WithReferenceRequestBuilder" },
29-
{ "Template": "EntityReferenceRequest", "SubProcessor": "EntityReferenceType", "Type": "Request", "Name": "<Class>ReferenceRequest" },
30-
{ "Template": "EntityReferenceRequestBuilder", "SubProcessor": "EntityReferenceType", "Type": "Request", "Name": "<Class>ReferenceRequestBuilder" },
31-
32-
{ "Template": "EntityCollectionRequest", "SubProcessor": "NavigationCollectionProperty", "Type": "Request", "Name": "<Class><Property>CollectionRequest", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
33-
{ "Template": "EntityCollectionRequestBuilder", "SubProcessor": "NavigationCollectionProperty", "Type": "Request", "Name": "<Class><Property>CollectionRequestBuilder", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
34-
{ "Template": "EntityCollectionRequest", "SubProcessor": "CollectionReferenceProperty", "Type": "Request", "Name": "<Class><Property>CollectionWithReferencesRequest", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
35-
{ "Template": "EntityCollectionRequestBuilder", "SubProcessor": "CollectionReferenceProperty", "Type": "Request", "Name": "<Class><Property>CollectionWithReferencesRequestBuilder", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
36-
37-
{ "Template": "EntityCollectionReferenceRequest", "SubProcessor": "CollectionReferenceProperty", "Type": "Request", "Name": "<Class><Property>CollectionReferencesRequest", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
38-
{ "Template": "EntityCollectionReferenceRequestBuilder", "SubProcessor": "CollectionReferenceProperty", "Type": "Request", "Name": "<Class><Property>CollectionReferencesRequestBuilder", "Exclude": "daysOfWeek;ignorableCollection2", "Ignore": "ignorableCollection" },
39-
40-
{ "Template": "MethodCollection", "SubProcessor": "Method", "Type": "Request", "Name": "<Class><Method>Collection", "Matches": "specialCollection" },
41-
42-
{ "Template": "EntityRequest", "SubProcessor": "ComplexType", "Type": "Request", "Name": "<Class>Request", "Matches": "navigable" },
43-
{ "Template": "EntityRequestBuilder", "SubProcessor": "ComplexType", "Type": "Request", "Name": "<Class>RequestBuilder", "Matches": "navigable" }
18+
{ "Template": "ODataEntities", "SubProcessor": "Other", "Type": "Model", "Name": "ODataEntities" }
4419
]
4520
}
4621
}

src/GraphODataTemplateWriter/.config/TemplateWriterSettings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"AvailableLanguages": [ "Android", "Java", "ObjC", "CSharp", "PHP", "Python", "TypeScript", "GraphEndpointList" ],
3-
"TargetLanguage": "CSharp",
3+
"TargetLanguage": "ObjC",
44
"Plugins": [],
5-
"PrimaryNamespaceName": "com",
6-
"NamespacePrefix": "com",
5+
"PrimaryNamespaceName": "MSGraph",
6+
"NamespacePrefix": "MSGraph",
77
"InitializeCollections": "false",
88
"AllowShortActions": "false",
99
"NamespaceOverride": "",

src/GraphODataTemplateWriter/CodeHelpers/ObjC/CodeWriterObjC.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public string GetImportsClass(IEnumerable<OdcmProperty> references, IEnumerable<
133133
{
134134
imports.AppendFormat("#import <UIKit/UiKit.h>").AppendLine();
135135
}
136-
else if (type.IsComplex() && !type.IsSystem() && type.GetTypeString() != "id" &&
136+
else if (!type.IsSystem() && type.IsComplex() && type.GetTypeString() != "id" &&
137137
type.GetTypeString() != classType)
138138
{
139139
classes.AppendFormat("{0}, ", type.GetTypeString());

src/GraphODataTemplateWriter/CodeHelpers/ObjC/TypeHelperObjC.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ public static ICollection<string> ReservedNames
8181
"readwrite",
8282
"readonly",
8383
"inline",
84-
"operations"
84+
"operations",
85+
"Duration",
86+
"False"
87+
8588
};
8689
}
8790
return reservedNames;
@@ -107,6 +110,7 @@ public static string GetTypeString(this OdcmType type)
107110
return "NSString";
108111
case "Double":
109112
case "Float":
113+
case "Single":
110114
return "CGFloat";
111115
case "DateTimeOffset":
112116
return "NSDate";
@@ -121,9 +125,16 @@ public static string GetTypeString(this OdcmType type)
121125
case "Stream":
122126
return "NSStream";
123127
case "Duration":
124-
return "Duration";
128+
return "MSDate";
125129
case "NSDictionary":
126130
return "NSDictionary";
131+
case "JSON":
132+
return "NSDictionary";
133+
case "Json":
134+
return "NSDictionary";
135+
case "Byte":
136+
return "Byte";
137+
127138
default:
128139
return Prefix + type.Name.ToUpperFirstChar();
129140
}
@@ -194,7 +205,7 @@ public static bool IsSystem(this OdcmProperty property)
194205
public static bool IsSystem(this OdcmType type)
195206
{
196207
string t = GetTypeString(type);
197-
return (t.Contains("int") || t == "BOOL" || t == "Byte" || t == "NSString" || t == "NSDate" || t == "NSStream" || t == "CGFloat");
208+
return (t == "int32_t" || t == "int64_t" || t == "int16_t" || t == "BOOL" || t == "Byte" || t == "NSString" || t == "NSDate" || t == "NSStream" || t == "CGFloat");
198209
}
199210

200211
public static bool IsComplexCollectionOpenType(this OdcmProperty property, OdcmModel model)

0 commit comments

Comments
 (0)