Merge pull request #3124 from mateuszmackowiak/objc/core_data_support_for_array_model

[Objc] - CoreData support for ArrayModels
This commit is contained in:
wing328 2016-06-16 17:24:08 +08:00 committed by GitHub
commit dd379461e2
48 changed files with 437 additions and 159 deletions

View File

@ -22,6 +22,7 @@ public class CodegenModel {
public String unescapedDescription;
public String discriminator;
public String defaultValue;
public String arrayModelType;
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>();
public List<CodegenProperty> requiredVars = new ArrayList<CodegenProperty>(); // a list of required properties
public List<CodegenProperty> optionalVars = new ArrayList<CodegenProperty>(); // a list of optional properties
@ -35,7 +36,7 @@ public class CodegenModel {
public Set<String> allMandatory;
public Set<String> imports = new TreeSet<String>();
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, hasRequired;
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, hasRequired, isArrayModel;
public ExternalDocs externalDocs;
public Map<String, Object> vendorExtensions;

View File

@ -1198,6 +1198,8 @@ public class DefaultCodegen {
ArrayModel am = (ArrayModel) model;
ArrayProperty arrayProperty = new ArrayProperty(am.getItems());
m.hasEnums = false; // Otherwise there will be a NullPointerException in JavaClientCodegen.fromModel
m.isArrayModel = true;
m.arrayModelType = fromProperty(name, arrayProperty).complexType;
addParentContainer(m, name, arrayProperty);
} else if (model instanceof RefModel) {
// TODO
@ -1465,7 +1467,9 @@ public class DefaultCodegen {
if (p instanceof BinaryProperty) {
property.isBinary = true;
}
if (p instanceof UUIDProperty) {
property.isString = true;
}
if (p instanceof ByteArrayProperty) {
property.isByteArray = true;
}

View File

@ -1,6 +1,7 @@
package io.swagger.codegen.languages;
import io.swagger.codegen.*;
import io.swagger.models.ArrayModel;
import io.swagger.models.Model;
import io.swagger.models.properties.*;
@ -94,7 +95,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
typeMapping.clear();
typeMapping.put("enum", "NSString");
typeMapping.put("date", "NSDate");
typeMapping.put("DateTime", "NSDate");
typeMapping.put("datetime", "NSDate");
typeMapping.put("boolean", "NSNumber");
typeMapping.put("string", "NSString");
typeMapping.put("integer", "NSNumber");
@ -105,12 +106,15 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
typeMapping.put("array", "NSArray");
typeMapping.put("map", "NSDictionary");
typeMapping.put("number", "NSNumber");
typeMapping.put("bigdecimal", "NSNumber");
typeMapping.put("List", "NSArray");
typeMapping.put("object", "NSObject");
typeMapping.put("file", "NSURL");
typeMapping.put("binary", "NSData");
typeMapping.put("ByteArray", "NSData");
typeMapping.put("bytearray", "NSData");
typeMapping.put("byte", "NSData");
typeMapping.put("uuid", "NSString");
typeMapping.put("password", "NSString");
// ref: http://www.tutorialspoint.com/objective_c/objective_c_basic_syntax.htm
setReservedWordsLowerCase(
@ -293,8 +297,8 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
public String getSwaggerType(Property p) {
String swaggerType = super.getSwaggerType(p);
String type = null;
if (typeMapping.containsKey(swaggerType)) {
type = typeMapping.get(swaggerType);
if (typeMapping.containsKey(swaggerType.toLowerCase())) {
type = typeMapping.get(swaggerType.toLowerCase());
if (languageSpecificPrimitives.contains(type) && !foundationClasses.contains(type)) {
return toModelNameWithoutReservedWordCheck(type);
}
@ -304,15 +308,6 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
return toModelNameWithoutReservedWordCheck(type);
}
public CodegenProperty coreDatafromProperty(String name, Property p) {
CodegenProperty property = fromProperty(name, p);
if(!generateCoreData) {
return property;
}
property.baseType = getTypeCoreDataDeclaration(p);
return property;
}
@Override
public String getTypeDeclaration(Property p) {
if (p instanceof ArrayProperty) {
@ -377,73 +372,6 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
}
}
public String getTypeCoreDataDeclaration(Property p) {
if (p instanceof ArrayProperty) {
ArrayProperty ap = (ArrayProperty) p;
Property inner = ap.getItems();
String innerType = getSwaggerType(inner);
String innerTypeDeclaration = getTypeDeclaration(inner);
if (innerTypeDeclaration.endsWith("*")) {
innerTypeDeclaration = innerTypeDeclaration.substring(0, innerTypeDeclaration.length() - 1);
}
// In this codition, type of property p is array of primitive,
// return container type with pointer, e.g. `NSArray*<NSString*>*'
if (languageSpecificPrimitives.contains(innerTypeDeclaration)) {
return getSwaggerType(p) + "<" + innerTypeDeclaration + "*>*";
}
// In this codition, type of property p is array of model,
// return container type combine inner type with pointer, e.g. `NSArray<SWGTag>*'
else {
for (String sd : advancedMapingTypes) {
if(innerTypeDeclaration.startsWith(sd)) {
return getSwaggerType(p) + "<" + innerTypeDeclaration + "*>*";
}
}
return getSwaggerType(p) + "<" + innerTypeDeclaration + ">*";
}
} else if (p instanceof MapProperty) {
MapProperty mp = (MapProperty) p;
Property inner = mp.getAdditionalProperties();
String innerTypeDeclaration = getTypeDeclaration(inner);
if (innerTypeDeclaration.endsWith("*")) {
innerTypeDeclaration = innerTypeDeclaration.substring(0, innerTypeDeclaration.length() - 1);
}
if (languageSpecificPrimitives.contains(innerTypeDeclaration)) {
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + "*>*";
} else {
for (String s : advancedMapingTypes) {
if(innerTypeDeclaration.startsWith(s)) {
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + "*>*";
}
}
return getSwaggerType(p) + "<NSString*, " + innerTypeDeclaration + ">*";
}
} else {
String swaggerType = getSwaggerType(p);
// In this codition, type of p is objective-c primitive type, e.g. `NSSNumber',
// return type of p with pointer, e.g. `NSNumber*'
if (languageSpecificPrimitives.contains(swaggerType) &&
foundationClasses.contains(swaggerType)) {
return swaggerType + "*";
}
// In this codition, type of p is c primitive type, e.g. `bool',
// return type of p, e.g. `bool'
else if (languageSpecificPrimitives.contains(swaggerType)) {
return swaggerType;
}
// In this codition, type of p is objective-c object type, e.g. `SWGPet',
// return type of p with pointer, e.g. `SWGPet*'
else {
return swaggerType + "*";
}
}
}
@Override
public boolean isDataTypeBinary(String dataType) {
return dataType.toLowerCase().startsWith("nsdata");

View File

@ -2,10 +2,11 @@
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9525" systemVersion="15D21" minimumToolsVersion="Xcode 7.0">
{{#models}}{{#model}}<entity name="{{{classname}}}ManagedObject" representedClassName="{{{classname}}}ManagedObject" syncable="YES">
{{#vars}}{{#complexType}} <relationship name="{{name}}" {{^required}}optional="YES"{{/required}} {{#isListContainer}}toMany="YES"{{/isListContainer}}{{^isListContainer}}maxCount="1"{{/isListContainer}} deletionRule="Cascade" destinationEntity="{{{complexType}}}ManagedObject" syncable="YES"/>{{/complexType}}{{^complexType}} <attribute name="{{name}}" {{^required}}optional="YES"{{/required}} attributeType="{{#isString}}String{{/isString}}{{#isInteger}}Integer 16{{/isInteger}}{{#isLong}}Double{{/isLong}}{{#isDouble}}Double{{/isDouble}}{{#isFloat}}Float{{/isFloat}}{{#isByteArray}}Binary{{/isByteArray}}{{#isBinary}}Binary{{/isBinary}}{{#isListContainer}}Transformable{{/isListContainer}}{{#isMapContainer}}Transformable{{/isMapContainer}}{{#isBoolean}}Boolean{{/isBoolean}}{{#isDate}}Date{{/isDate}}{{#isDateTime}}Date{{/isDateTime}}" syncable="YES"/>{{/complexType}}{{#vendorExtensions.x-unique-id-key}}
<uniquenessConstraints><uniquenessConstraint><constraint value="{{name}}"/></uniquenessConstraint></uniquenessConstraints>{{/vendorExtensions.x-unique-id-key}}
{{#isArrayModel}} <relationship name="entries" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="{{{arrayModelType}}}ManagedObject" syncable="YES"/>
{{/isArrayModel}}{{^isArrayModel}}{{#vars}}{{#complexType}} <relationship name="{{name}}" {{^required}}optional="YES"{{/required}} {{#isListContainer}}toMany="YES"{{/isListContainer}}{{^isListContainer}}maxCount="1"{{/isListContainer}} deletionRule="Cascade" destinationEntity="{{{complexType}}}ManagedObject" syncable="YES"/>{{/complexType}}{{^complexType}} <attribute name="{{name}}" {{^required}}optional="YES"{{/required}} attributeType="{{#isString}}String{{/isString}}{{#isInteger}}Integer 16{{/isInteger}}{{#isLong}}Double{{/isLong}}{{#isDouble}}Double{{/isDouble}}{{#isFloat}}Float{{/isFloat}}{{#isByteArray}}Binary{{/isByteArray}}{{#isBinary}}Binary{{/isBinary}}{{#isListContainer}}Transformable{{/isListContainer}}{{#isMapContainer}}Transformable{{/isMapContainer}}{{#isBoolean}}Boolean{{/isBoolean}}{{#isDate}}Date{{/isDate}}{{#isDateTime}}Date{{/isDateTime}}" syncable="YES"/>{{/complexType}}{{#vendorExtensions.x-is-unique}}
<uniquenessConstraints><uniquenessConstraint><constraint value="{{name}}"/></uniquenessConstraint></uniquenessConstraints>{{/vendorExtensions.x-is-unique}}
{{/vars}}
{{/isArrayModel}}
</entity>
{{/model}}{{/models}}
</model>

View File

@ -8,11 +8,13 @@
* Do not edit the class manually.
*/
@implementation {{classname}}ManagedObject
{{#isArrayModel}}
{{#vars}}
@dynamic {{name}};
{{/vars}}
@dynamic entries;
{{/isArrayModel}}{{^isArrayModel}}{{#vars}}
@dynamic {{name}};{{/vars}}
{{/isArrayModel}}
{{/model}}
@end
{{/models}}

View File

@ -10,26 +10,40 @@
{{#model}}
NS_ASSUME_NONNULL_BEGIN
{{#isArrayModel}}
@interface {{classname}}ManagedObject : {{#parent}}{{{parent}}}{{/parent}}{{^parent}}NSManagedObject{{/parent}}
@interface {{classname}}ManagedObject : NSManagedObject
@property (nullable, nonatomic, retain) NSSet<{{{arrayModelType}}}ManagedObject*>* entries;
{{/isArrayModel}}{{^isArrayModel}}
@interface {{classname}}ManagedObject : {{#parent}}{{{parent}}}ManagedObject{{/parent}}{{^parent}}NSManagedObject{{/parent}}
{{#vars}}
{{#description}}/* {{{description}}} {{^required}}[optional]{{/required}}
*/{{/description}}
@property (nullable, nonatomic, retain) {{^complexType}}{{{ datatype }}}{{/complexType}}{{#complexType}}{{#isListContainer}}NSSet<{{{complexType}}}ManagedObject*>*{{/isListContainer}}{{^isListContainer}}{{{complexType}}}ManagedObject*{{/isListContainer}}{{/complexType}} {{name}};
@property (nullable, nonatomic, retain) {{^complexType}}{{{ datatype }}}{{/complexType}}{{#complexType}}{{#isListContainer}}NSSet<{{{complexType}}}ManagedObject*>*{{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}{{{ datatype }}}{{/isMapContainer}}{{^isMapContainer}}{{{complexType}}}ManagedObject*{{/isMapContainer}}{{/isListContainer}}{{/complexType}} {{name}};
{{/vars}}
{{/isArrayModel}}
@end
@interface {{classname}}ManagedObject (GeneratedAccessors)
{{#isArrayModel}}
- (void)addEntriesObject:({{arrayModelType}}ManagedObject *)value;
- (void)removeEntriesObject:({{arrayModelType}}ManagedObject *)value;
- (void)addEntries:(NSSet<{{{arrayModelType}}}ManagedObject*> *)values;
- (void)removeEntries:(NSSet<{{{arrayModelType}}}ManagedObject*> *)values;
{{/isArrayModel}}
{{^isArrayModel}}
{{#vars}}{{#isListContainer}}{{#complexType}}- (void)add{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
- (void)remove{{vendorExtensions.x-uppercaseName}}Object:({{complexType}}ManagedObject *)value;
- (void)add{{vendorExtensions.x-uppercaseName}}:(NSSet<{{{complexType}}}ManagedObject*> *)values;
- (void)remove{{vendorExtensions.x-uppercaseName}}:(NSSet<{{{complexType}}}ManagedObject*> *)values;
{{/complexType}}{{/isListContainer}}{{/vars}}
{{/isArrayModel}}
@end
{{/model}}
{{/models}}
NS_ASSUME_NONNULL_END
{{/model}}
{{/models}}

View File

@ -13,8 +13,9 @@
-(instancetype)init {
self = [super init];
if (self != nil) {
{{#vars}}{{#complexType}} _{{name}}Builder = [[{{complexType}}ManagedObjectBuilder alloc] init];
{{/complexType}}{{/vars}} }
{{#isArrayModel}} _entriesBuilder = [[{{arrayModelType}}ManagedObjectBuilder alloc] init];
{{/isArrayModel}}{{#vars}}{{#complexType}}{{^isMapContainer}} _{{name}}Builder = [[{{complexType}}ManagedObjectBuilder alloc] init];
{{/isMapContainer}}{{/complexType}}{{/vars}} }
return self;
}
@ -23,9 +24,9 @@
return managedObject;
}
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*){{name}} context:(NSManagedObjectContext*)context {
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*)object context:(NSManagedObjectContext*)context {
{{classname}}ManagedObject* new{{classname}} = [self createNew{{{classname}}}ManagedObjectInContext:context];
[self update{{classname}}ManagedObject:new{{classname}} with{{classname}}:{{name}}];
[self update{{classname}}ManagedObject:new{{classname}} with{{classname}}:object];
return new{{classname}};
}
@ -40,13 +41,18 @@
[convertedObjs addObject:convertedObj];
}
managedObject.{{name}} = convertedObjs;
}{{/isListContainer}}{{^isListContainer}}
}{{/isListContainer}}{{^isListContainer}}{{^isMapContainer}}
if(!managedObject.{{name}}) {
managedObject.{{name}} = [self.{{name}}Builder {{complexType}}ManagedObjectFrom{{complexType}}:object.{{name}} context:managedObject.managedObjectContext];
} else {
[self.{{name}}Builder update{{complexType}}ManagedObject:managedObject.{{name}} with{{complexType}}:object.{{name}}];
}{{/isListContainer}}{{/complexType}}
{{/vars}}
}{{/isMapContainer}}{{#isMapContainer}}managedObject.{{name}} = [object.{{name}} copy];{{/isMapContainer}}{{/isListContainer}}{{/complexType}}
{{/vars}}{{#isArrayModel}} NSMutableSet * convertedObjs = [NSMutableSet set];
for (id innerObject in object) {
id convertedObj = [self.entriesBuilder {{arrayModelType}}ManagedObjectFrom{{arrayModelType}}:innerObject context:managedObject.managedObjectContext];
[convertedObjs addObject:convertedObj];
}
managedObject.entries = convertedObjs;{{/isArrayModel}}
}
-({{classname}}*){{classname}}From{{classname}}ManagedObject:({{classname}}ManagedObject*)obj {
@ -59,7 +65,14 @@
}
-(void)update{{classname}}:({{classname}}*)new{{classname}} with{{classname}}ManagedObject:({{classname}}ManagedObject*)obj {
{{#vars}}{{^complexType}} new{{classname}}.{{name}} = [obj.{{name}} copy];{{/complexType}}{{#complexType}}{{#isListContainer}} if(obj.{{name}} != nil) {
{{#isArrayModel}} [new{{classname}} removeAllObjects];
NSMutableArray* convertedObjs = [NSMutableArray array];
for (id innerObject in obj.entries) {
id convertedObj = [self.entriesBuilder {{arrayModelType}}From{{arrayModelType}}ManagedObject:innerObject];
[convertedObjs addObject:convertedObj];
}
[new{{classname}} addObjectsFromArray:convertedObjs];
{{/isArrayModel}}{{#vars}}{{^complexType}} new{{classname}}.{{name}} = [obj.{{name}} copy];{{/complexType}}{{#complexType}}{{#isListContainer}} if(obj.{{name}} != nil) {
NSMutableArray* convertedObjs = [NSMutableArray array];
for (id innerObject in obj.{{name}}) {
id convertedObj = [self.{{name}}Builder {{complexType}}From{{complexType}}ManagedObject:innerObject];

View File

@ -6,25 +6,25 @@
{{#models}}
{{#model}}
#import "{{classPrefix}}{{name}}ManagedObject.h"
#import "{{classPrefix}}{{name}}.h"
#import "{{classname}}ManagedObject.h"
#import "{{classname}}.h"
{{>licenceInfo}}
@interface {{classname}}ManagedObjectBuilder : NSObject
{{#vars}}{{#complexType}}@property (nonatomic, strong) {{complexType}}ManagedObjectBuilder * {{name}}Builder;
{{#isArrayModel}}@property (nonatomic, strong) {{arrayModelType}}ManagedObjectBuilder * entriesBuilder;{{/isArrayModel}}{{#vars}}{{#complexType}}@property (nonatomic, strong) {{complexType}}ManagedObjectBuilder * {{name}}Builder;
{{/complexType}}{{/vars}}
-({{classname}}ManagedObject*)createNew{{classname}}ManagedObjectInContext:(NSManagedObjectContext*)context;
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*){{name}} context:(NSManagedObjectContext*)context;
-({{classname}}ManagedObject*){{classname}}ManagedObjectFrom{{classname}}:({{classname}}*)object context:(NSManagedObjectContext*)context;
-(void)update{{classname}}ManagedObject:({{classname}}ManagedObject*){{name}} with{{classname}}:({{classname}}*){{name}}2;
-(void)update{{classname}}ManagedObject:({{classname}}ManagedObject*)object with{{classname}}:({{classname}}*)object2;
-({{classname}}*){{classname}}From{{classname}}ManagedObject:({{classname}}ManagedObject*)obj;
-(void)update{{classname}}:({{classname}}*){{name}} with{{classname}}ManagedObject:({{classname}}ManagedObject*){{name}}2;
-(void)update{{classname}}:({{classname}}*)object with{{classname}}ManagedObject:({{classname}}ManagedObject*)object2;
@end
{{/model}}

View File

@ -267,6 +267,43 @@ public class ObjcModelTest {
Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("SWGChildren")).size(), 1);
}
@Test(description = "test udid")
public void udidAndPasswordDataModelTest() {
final Swagger model = new SwaggerParser().read("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml");
final DefaultCodegen codegen = new ObjcClientCodegen();
final Model definition = model.getDefinitions().get("format_test");
Property property = definition.getProperties().get("uuid");
CodegenProperty prope = codegen.fromProperty("uuid", property);
Assert.assertEquals(prope.baseType, "NSString");
prope = codegen.fromProperty("password", property);
Assert.assertEquals(prope.baseType, "NSString");
}
@Test(description = "test mixedProperties")
public void mixedPropertiesDataModelTest() {
final Swagger model = new SwaggerParser().read("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml");
final DefaultCodegen codegen = new ObjcClientCodegen();
final Model definition = model.getDefinitions().get("MixedPropertiesAndAdditionalPropertiesClass");
Property property = definition.getProperties().get("map");
CodegenProperty prope = codegen.fromProperty("map", property);
Assert.assertEquals(prope.baseType, "NSDictionary");
}
@Test(description = "test isArrayModel")
public void isArrayModelModelTest() {
final Swagger model = new SwaggerParser().read("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml");
final DefaultCodegen codegen = new ObjcClientCodegen();
final Model definition = model.getDefinitions().get("AnimalFarm");
final CodegenModel codegenModel = codegen.fromModel("AnimalFarm",definition);
Assert.assertEquals(codegenModel.isArrayModel,Boolean.TRUE);
Assert.assertEquals(codegenModel.arrayModelType,"SWGAnimal");
}
@Test(description = "test binary data")
public void binaryDataModelTest() {
final Swagger model = new SwaggerParser().read("src/test/resources/2_0/binaryDataTest.json");

View File

@ -6,7 +6,7 @@ This ObjC package is automatically generated by the [Swagger Codegen](https://gi
- API version: 1.0.0
- Package version:
- Build date: 2016-06-06T12:11:50.444+02:00
- Build date: 2016-06-13T18:11:50.695+02:00
- Build package: class io.swagger.codegen.languages.ObjcClientCodegen
## Requirements

View File

@ -35,12 +35,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, nonatomic, retain) NSNumber* _id;
@property (nullable, nonatomic, retain) NSString* name;
@end
@interface SWGCategoryManagedObject (GeneratedAccessors)
@end
NS_ASSUME_NONNULL_END

View File

@ -9,5 +9,4 @@
@dynamic _id;
@dynamic name;
@end

View File

@ -35,12 +35,12 @@
-(SWGCategoryManagedObject*)createNewSWGCategoryManagedObjectInContext:(NSManagedObjectContext*)context;
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)Category context:(NSManagedObjectContext*)context;
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)object context:(NSManagedObjectContext*)context;
-(void)updateSWGCategoryManagedObject:(SWGCategoryManagedObject*)Category withSWGCategory:(SWGCategory*)Category2;
-(void)updateSWGCategoryManagedObject:(SWGCategoryManagedObject*)object withSWGCategory:(SWGCategory*)object2;
-(SWGCategory*)SWGCategoryFromSWGCategoryManagedObject:(SWGCategoryManagedObject*)obj;
-(void)updateSWGCategory:(SWGCategory*)Category withSWGCategoryManagedObject:(SWGCategoryManagedObject*)Category2;
-(void)updateSWGCategory:(SWGCategory*)object withSWGCategoryManagedObject:(SWGCategoryManagedObject*)object2;
@end

View File

@ -13,7 +13,7 @@
-(instancetype)init {
self = [super init];
if (self != nil) {
}
}
return self;
}
@ -22,9 +22,9 @@
return managedObject;
}
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)Category context:(NSManagedObjectContext*)context {
-(SWGCategoryManagedObject*)SWGCategoryManagedObjectFromSWGCategory:(SWGCategory*)object context:(NSManagedObjectContext*)context {
SWGCategoryManagedObject* newSWGCategory = [self createNewSWGCategoryManagedObjectInContext:context];
[self updateSWGCategoryManagedObject:newSWGCategory withSWGCategory:Category];
[self updateSWGCategoryManagedObject:newSWGCategory withSWGCategory:object];
return newSWGCategory;
}
@ -34,6 +34,7 @@
}
managedObject._id = [object._id copy];
managedObject.name = [object.name copy];
}
-(SWGCategory*)SWGCategoryFromSWGCategoryManagedObject:(SWGCategoryManagedObject*)obj {

View File

@ -4,7 +4,6 @@
<entity name="SWGCategoryManagedObject" representedClassName="SWGCategoryManagedObject" syncable="YES">
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
</entity>
<entity name="SWGOrderManagedObject" representedClassName="SWGOrderManagedObject" syncable="YES">
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
@ -13,7 +12,6 @@
<attribute name="shipDate" optional="YES" attributeType="Date" syncable="YES"/>
<attribute name="status" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="complete" optional="YES" attributeType="Boolean" syncable="YES"/>
</entity>
<entity name="SWGPetManagedObject" representedClassName="SWGPetManagedObject" syncable="YES">
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
@ -22,12 +20,10 @@
<attribute name="photoUrls" attributeType="Transformable" syncable="YES"/>
<relationship name="tags" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="SWGTagManagedObject" syncable="YES"/>
<attribute name="status" optional="YES" attributeType="String" syncable="YES"/>
</entity>
<entity name="SWGTagManagedObject" representedClassName="SWGTagManagedObject" syncable="YES">
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
</entity>
<entity name="SWGUserManagedObject" representedClassName="SWGUserManagedObject" syncable="YES">
<attribute name="_id" optional="YES" attributeType="Double" syncable="YES"/>
@ -38,7 +34,6 @@
<attribute name="password" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="phone" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="userStatus" optional="YES" attributeType="Integer 16" syncable="YES"/>
</entity>
</model>

View File

@ -44,12 +44,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, nonatomic, retain) NSString* status;
@property (nullable, nonatomic, retain) NSNumber* complete;
@end
@interface SWGOrderManagedObject (GeneratedAccessors)
@end
NS_ASSUME_NONNULL_END

View File

@ -13,5 +13,4 @@
@dynamic shipDate;
@dynamic status;
@dynamic complete;
@end

View File

@ -35,12 +35,12 @@
-(SWGOrderManagedObject*)createNewSWGOrderManagedObjectInContext:(NSManagedObjectContext*)context;
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)Order context:(NSManagedObjectContext*)context;
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)object context:(NSManagedObjectContext*)context;
-(void)updateSWGOrderManagedObject:(SWGOrderManagedObject*)Order withSWGOrder:(SWGOrder*)Order2;
-(void)updateSWGOrderManagedObject:(SWGOrderManagedObject*)object withSWGOrder:(SWGOrder*)object2;
-(SWGOrder*)SWGOrderFromSWGOrderManagedObject:(SWGOrderManagedObject*)obj;
-(void)updateSWGOrder:(SWGOrder*)Order withSWGOrderManagedObject:(SWGOrderManagedObject*)Order2;
-(void)updateSWGOrder:(SWGOrder*)object withSWGOrderManagedObject:(SWGOrderManagedObject*)object2;
@end

View File

@ -13,7 +13,7 @@
-(instancetype)init {
self = [super init];
if (self != nil) {
}
}
return self;
}
@ -22,9 +22,9 @@
return managedObject;
}
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)Order context:(NSManagedObjectContext*)context {
-(SWGOrderManagedObject*)SWGOrderManagedObjectFromSWGOrder:(SWGOrder*)object context:(NSManagedObjectContext*)context {
SWGOrderManagedObject* newSWGOrder = [self createNewSWGOrderManagedObjectInContext:context];
[self updateSWGOrderManagedObject:newSWGOrder withSWGOrder:Order];
[self updateSWGOrderManagedObject:newSWGOrder withSWGOrder:object];
return newSWGOrder;
}
@ -38,6 +38,7 @@
managedObject.shipDate = [object.shipDate copy];
managedObject.status = [object.status copy];
managedObject.complete = [object.complete copy];
}
-(SWGOrder*)SWGOrderFromSWGOrderManagedObject:(SWGOrderManagedObject*)obj {

View File

@ -46,11 +46,9 @@ NS_ASSUME_NONNULL_BEGIN
/* pet status in the store [optional]
*/
@property (nullable, nonatomic, retain) NSString* status;
@end
@interface SWGPetManagedObject (GeneratedAccessors)
- (void)addTagsObject:(SWGTagManagedObject *)value;
- (void)removeTagsObject:(SWGTagManagedObject *)value;
- (void)addTags:(NSSet<SWGTagManagedObject*> *)values;
@ -58,4 +56,5 @@ NS_ASSUME_NONNULL_BEGIN
@end
NS_ASSUME_NONNULL_END

View File

@ -13,5 +13,4 @@
@dynamic photoUrls;
@dynamic tags;
@dynamic status;
@end

View File

@ -39,12 +39,12 @@
-(SWGPetManagedObject*)createNewSWGPetManagedObjectInContext:(NSManagedObjectContext*)context;
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)Pet context:(NSManagedObjectContext*)context;
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)object context:(NSManagedObjectContext*)context;
-(void)updateSWGPetManagedObject:(SWGPetManagedObject*)Pet withSWGPet:(SWGPet*)Pet2;
-(void)updateSWGPetManagedObject:(SWGPetManagedObject*)object withSWGPet:(SWGPet*)object2;
-(SWGPet*)SWGPetFromSWGPetManagedObject:(SWGPetManagedObject*)obj;
-(void)updateSWGPet:(SWGPet*)Pet withSWGPetManagedObject:(SWGPetManagedObject*)Pet2;
-(void)updateSWGPet:(SWGPet*)object withSWGPetManagedObject:(SWGPetManagedObject*)object2;
@end

View File

@ -15,7 +15,7 @@
if (self != nil) {
_categoryBuilder = [[SWGCategoryManagedObjectBuilder alloc] init];
_tagsBuilder = [[SWGTagManagedObjectBuilder alloc] init];
}
}
return self;
}
@ -24,9 +24,9 @@
return managedObject;
}
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)Pet context:(NSManagedObjectContext*)context {
-(SWGPetManagedObject*)SWGPetManagedObjectFromSWGPet:(SWGPet*)object context:(NSManagedObjectContext*)context {
SWGPetManagedObject* newSWGPet = [self createNewSWGPetManagedObjectInContext:context];
[self updateSWGPetManagedObject:newSWGPet withSWGPet:Pet];
[self updateSWGPetManagedObject:newSWGPet withSWGPet:object];
return newSWGPet;
}
@ -52,6 +52,7 @@
managedObject.tags = convertedObjs;
}
managedObject.status = [object.status copy];
}
-(SWGPet*)SWGPetFromSWGPetManagedObject:(SWGPetManagedObject*)obj {

View File

@ -35,12 +35,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, nonatomic, retain) NSNumber* _id;
@property (nullable, nonatomic, retain) NSString* name;
@end
@interface SWGTagManagedObject (GeneratedAccessors)
@end
NS_ASSUME_NONNULL_END

View File

@ -9,5 +9,4 @@
@dynamic _id;
@dynamic name;
@end

View File

@ -35,12 +35,12 @@
-(SWGTagManagedObject*)createNewSWGTagManagedObjectInContext:(NSManagedObjectContext*)context;
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)Tag context:(NSManagedObjectContext*)context;
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)object context:(NSManagedObjectContext*)context;
-(void)updateSWGTagManagedObject:(SWGTagManagedObject*)Tag withSWGTag:(SWGTag*)Tag2;
-(void)updateSWGTagManagedObject:(SWGTagManagedObject*)object withSWGTag:(SWGTag*)object2;
-(SWGTag*)SWGTagFromSWGTagManagedObject:(SWGTagManagedObject*)obj;
-(void)updateSWGTag:(SWGTag*)Tag withSWGTagManagedObject:(SWGTagManagedObject*)Tag2;
-(void)updateSWGTag:(SWGTag*)object withSWGTagManagedObject:(SWGTagManagedObject*)object2;
@end

View File

@ -13,7 +13,7 @@
-(instancetype)init {
self = [super init];
if (self != nil) {
}
}
return self;
}
@ -22,9 +22,9 @@
return managedObject;
}
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)Tag context:(NSManagedObjectContext*)context {
-(SWGTagManagedObject*)SWGTagManagedObjectFromSWGTag:(SWGTag*)object context:(NSManagedObjectContext*)context {
SWGTagManagedObject* newSWGTag = [self createNewSWGTagManagedObjectInContext:context];
[self updateSWGTagManagedObject:newSWGTag withSWGTag:Tag];
[self updateSWGTagManagedObject:newSWGTag withSWGTag:object];
return newSWGTag;
}
@ -34,6 +34,7 @@
}
managedObject._id = [object._id copy];
managedObject.name = [object.name copy];
}
-(SWGTag*)SWGTagFromSWGTagManagedObject:(SWGTagManagedObject*)obj {

View File

@ -48,12 +48,11 @@ NS_ASSUME_NONNULL_BEGIN
/* User Status [optional]
*/
@property (nullable, nonatomic, retain) NSNumber* userStatus;
@end
@interface SWGUserManagedObject (GeneratedAccessors)
@end
NS_ASSUME_NONNULL_END

View File

@ -15,5 +15,4 @@
@dynamic password;
@dynamic phone;
@dynamic userStatus;
@end

View File

@ -35,12 +35,12 @@
-(SWGUserManagedObject*)createNewSWGUserManagedObjectInContext:(NSManagedObjectContext*)context;
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)User context:(NSManagedObjectContext*)context;
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)object context:(NSManagedObjectContext*)context;
-(void)updateSWGUserManagedObject:(SWGUserManagedObject*)User withSWGUser:(SWGUser*)User2;
-(void)updateSWGUserManagedObject:(SWGUserManagedObject*)object withSWGUser:(SWGUser*)object2;
-(SWGUser*)SWGUserFromSWGUserManagedObject:(SWGUserManagedObject*)obj;
-(void)updateSWGUser:(SWGUser*)User withSWGUserManagedObject:(SWGUserManagedObject*)User2;
-(void)updateSWGUser:(SWGUser*)object withSWGUserManagedObject:(SWGUserManagedObject*)object2;
@end

View File

@ -13,7 +13,7 @@
-(instancetype)init {
self = [super init];
if (self != nil) {
}
}
return self;
}
@ -22,9 +22,9 @@
return managedObject;
}
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)User context:(NSManagedObjectContext*)context {
-(SWGUserManagedObject*)SWGUserManagedObjectFromSWGUser:(SWGUser*)object context:(NSManagedObjectContext*)context {
SWGUserManagedObject* newSWGUser = [self createNewSWGUserManagedObjectInContext:context];
[self updateSWGUserManagedObject:newSWGUser withSWGUser:User];
[self updateSWGUserManagedObject:newSWGUser withSWGUser:object];
return newSWGUser;
}
@ -40,6 +40,7 @@
managedObject.password = [object.password copy];
managedObject.phone = [object.phone copy];
managedObject.userStatus = [object.userStatus copy];
}
-(SWGUser*)SWGUserFromSWGUserManagedObject:(SWGUserManagedObject*)obj {

View File

@ -0,0 +1,10 @@
# SWG200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# SWGAdditionalPropertiesClass
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**mapProperty** | **NSDictionary&lt;NSString*, NSString*&gt;*** | | [optional]
**mapOfMapProperty** | [**NSDictionary&lt;NSString*, NSDictionary&lt;NSString*, NSString*&gt;*&gt;***](NSDictionary.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# SWGAnimal
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**className** | **NSString*** | |
**color** | **NSString*** | | [optional] [default to @"red"]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,9 @@
# SWGAnimalFarm
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGApiResponse
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**code** | **NSNumber*** | | [optional]
**type** | **NSString*** | | [optional]
**message** | **NSString*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGArrayTest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**arrayOfString** | **NSArray&lt;NSString*&gt;*** | | [optional]
**arrayArrayOfInteger** | [**NSArray&lt;NSArray&lt;NSNumber*&gt;*&gt;***](NSArray.md) | | [optional]
**arrayArrayOfModel** | [**NSArray&lt;NSArray&lt;SWGReadOnlyFirst&gt;*&gt;***](NSArray.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGCat
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**className** | **NSString*** | |
**color** | **NSString*** | | [optional] [default to @"red"]
**declawed** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGDog
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**className** | **NSString*** | |
**color** | **NSString*** | | [optional] [default to @"red"]
**breed** | **NSString*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,9 @@
# SWGEnumClass
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGEnumTest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**enumString** | **NSString*** | | [optional]
**enumInteger** | **NSNumber*** | | [optional]
**enumNumber** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,100 @@
# SWGFakeApi
All URIs are relative to *http://petstore.swagger.io/v2*
Method | HTTP request | Description
------------- | ------------- | -------------
[**testEndpointParameters**](SWGFakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
# **testEndpointParameters**
```objc
-(NSNumber*) testEndpointParametersWithNumber: (NSNumber*) number
_double: (NSNumber*) _double
string: (NSString*) string
byte: (NSData*) byte
integer: (NSNumber*) integer
int32: (NSNumber*) int32
int64: (NSNumber*) int64
_float: (NSNumber*) _float
binary: (NSData*) binary
date: (NSDate*) date
dateTime: (NSDate*) dateTime
password: (NSString*) password
completionHandler: (void (^)(NSError* error)) handler;
```
Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
### Example
```objc
NSNumber* number = @3.4; // None
NSNumber* _double = @1.2; // None
NSString* string = @"string_example"; // None
NSData* byte = [[NSData alloc] init]; // None
NSNumber* integer = @56; // None (optional)
NSNumber* int32 = @56; // None (optional)
NSNumber* int64 = @789; // None (optional)
NSNumber* _float = @3.4; // None (optional)
NSData* binary = [[NSData alloc] init]; // None (optional)
NSDate* date = @"2013-10-20"; // None (optional)
NSDate* dateTime = @"2013-10-20T19:20:30+01:00"; // None (optional)
NSString* password = @"password_example"; // None (optional)
SWGFakeApi*apiInstance = [[SWGFakeApi alloc] init];
// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
[apiInstance testEndpointParametersWithNumber:number
_double:_double
string:string
byte:byte
integer:integer
int32:int32
int64:int64
_float:_float
binary:binary
date:date
dateTime:dateTime
password:password
completionHandler: ^(NSError* error) {
if (error) {
NSLog(@"Error calling SWGFakeApi->testEndpointParameters: %@", error);
}
}];
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**number** | **NSNumber***| None |
**_double** | **NSNumber***| None |
**string** | **NSString***| None |
**byte** | **NSData***| None |
**integer** | **NSNumber***| None | [optional]
**int32** | **NSNumber***| None | [optional]
**int64** | **NSNumber***| None | [optional]
**_float** | **NSNumber***| None | [optional]
**binary** | **NSData***| None | [optional]
**date** | **NSDate***| None | [optional]
**dateTime** | **NSDate***| None | [optional]
**password** | **NSString***| None | [optional]
### Return type
void (empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/xml; charset=utf-8, application/json; charset=utf-8
- **Accept**: application/xml; charset=utf-8, application/json; charset=utf-8
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,22 @@
# SWGFormatTest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**integer** | **NSNumber*** | | [optional]
**int32** | **NSNumber*** | | [optional]
**int64** | **NSNumber*** | | [optional]
**number** | **NSNumber*** | |
**_float** | **NSNumber*** | | [optional]
**_double** | **NSNumber*** | | [optional]
**string** | **NSString*** | | [optional]
**byte** | **NSData*** | |
**binary** | **NSData*** | | [optional]
**date** | **NSDate*** | |
**dateTime** | **NSDate*** | | [optional]
**uuid** | **NSString*** | | [optional]
**password** | **NSString*** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,12 @@
# SWGMixedPropertiesAndAdditionalPropertiesClass
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**uuid** | **NSString*** | | [optional]
**dateTime** | **NSDate*** | | [optional]
**map** | [**NSDictionary&lt;NSString*, SWGAnimal&gt;***](SWGAnimal.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,13 @@
# SWGName
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **NSNumber*** | |
**snakeCase** | **NSNumber*** | | [optional]
**_property** | **NSString*** | | [optional]
**_123Number** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,11 @@
# SWGReadOnlyFirst
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**bar** | **NSString*** | | [optional]
**baz** | **NSString*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,10 @@
# SWGReturn
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**_return** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,10 @@
# SWGSpecialModelName_
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**specialPropertyName** | **NSNumber*** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)