Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions Demo/PDKTModelBuilder.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
883ACAD51A043CCA006139C6 /* NSObjectModelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 883ACAD41A043CCA006139C6 /* NSObjectModelsTests.m */; };
88619E271A7FC296009AD2B5 /* PDKTEntityDataParserFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 88619E261A7FC296009AD2B5 /* PDKTEntityDataParserFactory.m */; };
88619E2A1A7FC2DF009AD2B5 /* PDKTCoreDataEntityDataParserFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 88619E291A7FC2DF009AD2B5 /* PDKTCoreDataEntityDataParserFactory.m */; };
88619E2D1A7FC551009AD2B5 /* UserEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 88619E2C1A7FC551009AD2B5 /* UserEntity.m */; };
88C464511A1291D000A6B9D6 /* NSManagedObjectModelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C464501A1291D000A6B9D6 /* NSManagedObjectModelsTests.m */; };
88C4645C1A1292BE00A6B9D6 /* UserEntity+PDKTModelBuilderEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C4645B1A1292BE00A6B9D6 /* UserEntity+PDKTModelBuilderEntity.m */; };
88C4645F1A1292D100A6B9D6 /* PictureEntity+PDKTModelBuilderEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C4645E1A1292D100A6B9D6 /* PictureEntity+PDKTModelBuilderEntity.m */; };
Expand All @@ -52,6 +51,9 @@
88C4646E1A12938200A6B9D6 /* TestablePicture.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C4646A1A12938200A6B9D6 /* TestablePicture.m */; };
88C4646F1A12948300A6B9D6 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 88C464641A12938200A6B9D6 /* Info.plist */; };
88C464751A129FAD00A6B9D6 /* PictureEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C464741A129FAD00A6B9D6 /* PictureEntity.m */; };
A9D84FB31B5FA4DE003E3BD1 /* UserEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D84FB21B5FA4DE003E3BD1 /* UserEntity.m */; };
A9E7B51A1C4BB031009F8A64 /* PDKTDateTimeZoneCeroTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E7B5191C4BB030009F8A64 /* PDKTDateTimeZoneCeroTransformer.m */; };
E71269DA1C85C039008DCFF4 /* PDKTISO8601DateTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = E71269D91C85C039008DCFF4 /* PDKTISO8601DateTransformer.m */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -131,8 +133,6 @@
88619E261A7FC296009AD2B5 /* PDKTEntityDataParserFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDKTEntityDataParserFactory.m; sourceTree = "<group>"; };
88619E281A7FC2DF009AD2B5 /* PDKTCoreDataEntityDataParserFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDKTCoreDataEntityDataParserFactory.h; sourceTree = "<group>"; };
88619E291A7FC2DF009AD2B5 /* PDKTCoreDataEntityDataParserFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDKTCoreDataEntityDataParserFactory.m; sourceTree = "<group>"; };
88619E2B1A7FC551009AD2B5 /* UserEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserEntity.h; sourceTree = "<group>"; };
88619E2C1A7FC551009AD2B5 /* UserEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserEntity.m; sourceTree = "<group>"; };
88C464501A1291D000A6B9D6 /* NSManagedObjectModelsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectModelsTests.m; sourceTree = "<group>"; };
88C4645A1A1292BE00A6B9D6 /* UserEntity+PDKTModelBuilderEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UserEntity+PDKTModelBuilderEntity.h"; sourceTree = "<group>"; };
88C4645B1A1292BE00A6B9D6 /* UserEntity+PDKTModelBuilderEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UserEntity+PDKTModelBuilderEntity.m"; sourceTree = "<group>"; };
Expand All @@ -147,6 +147,12 @@
88C4646A1A12938200A6B9D6 /* TestablePicture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestablePicture.m; sourceTree = "<group>"; };
88C464731A129FAD00A6B9D6 /* PictureEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureEntity.h; sourceTree = "<group>"; };
88C464741A129FAD00A6B9D6 /* PictureEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PictureEntity.m; sourceTree = "<group>"; };
A9D84FB11B5FA4DE003E3BD1 /* UserEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserEntity.h; sourceTree = "<group>"; };
A9D84FB21B5FA4DE003E3BD1 /* UserEntity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserEntity.m; sourceTree = "<group>"; };
A9E7B5181C4BB030009F8A64 /* PDKTDateTimeZoneCeroTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDKTDateTimeZoneCeroTransformer.h; sourceTree = "<group>"; };
A9E7B5191C4BB030009F8A64 /* PDKTDateTimeZoneCeroTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDKTDateTimeZoneCeroTransformer.m; sourceTree = "<group>"; };
E71269D81C85C039008DCFF4 /* PDKTISO8601DateTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDKTISO8601DateTransformer.h; sourceTree = "<group>"; };
E71269D91C85C039008DCFF4 /* PDKTISO8601DateTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDKTISO8601DateTransformer.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -333,6 +339,8 @@
883ACABB1A043815006139C6 /* PDKTDataTransformer.m */,
883ACABD1A043815006139C6 /* PDKTDateTransformer.h */,
883ACABE1A043815006139C6 /* PDKTDateTransformer.m */,
A9E7B5181C4BB030009F8A64 /* PDKTDateTimeZoneCeroTransformer.h */,
A9E7B5191C4BB030009F8A64 /* PDKTDateTimeZoneCeroTransformer.m */,
883ACABF1A043815006139C6 /* PDKTDoubleTransformer.h */,
883ACAC01A043815006139C6 /* PDKTDoubleTransformer.m */,
883ACAC11A043815006139C6 /* PDKTFloatTransformer.h */,
Expand All @@ -343,15 +351,17 @@
883ACAC61A043815006139C6 /* PDKTStringTransformer.m */,
883ACAC71A043815006139C6 /* PDKTURLTransformer.h */,
883ACAC81A043815006139C6 /* PDKTURLTransformer.m */,
E71269D81C85C039008DCFF4 /* PDKTISO8601DateTransformer.h */,
E71269D91C85C039008DCFF4 /* PDKTISO8601DateTransformer.m */,
);
path = DataTransformers;
sourceTree = "<group>";
};
88C464521A12927100A6B9D6 /* Models */ = {
isa = PBXGroup;
children = (
88619E2B1A7FC551009AD2B5 /* UserEntity.h */,
88619E2C1A7FC551009AD2B5 /* UserEntity.m */,
A9D84FB11B5FA4DE003E3BD1 /* UserEntity.h */,
A9D84FB21B5FA4DE003E3BD1 /* UserEntity.m */,
88C464731A129FAD00A6B9D6 /* PictureEntity.h */,
88C464741A129FAD00A6B9D6 /* PictureEntity.m */,
88C464591A1292A800A6B9D6 /* PDKTModelBuilderEntity */,
Expand Down Expand Up @@ -494,14 +504,16 @@
88619E2A1A7FC2DF009AD2B5 /* PDKTCoreDataEntityDataParserFactory.m in Sources */,
883ACAD01A043815006139C6 /* PDKTURLTransformer.m in Sources */,
883ACA6A1A0417BA006139C6 /* PDKTCoreDataEntityRelationship.m in Sources */,
88619E2D1A7FC551009AD2B5 /* UserEntity.m in Sources */,
A9D84FB31B5FA4DE003E3BD1 /* UserEntity.m in Sources */,
883ACACE1A043815006139C6 /* PDKTIntegerTransformer.m in Sources */,
883ACA141A041786006139C6 /* AppDelegate.m in Sources */,
88C464751A129FAD00A6B9D6 /* PictureEntity.m in Sources */,
883ACACA1A043815006139C6 /* PDKTDataTransformer.m in Sources */,
A9E7B51A1C4BB031009F8A64 /* PDKTDateTimeZoneCeroTransformer.m in Sources */,
883ACA171A041786006139C6 /* PDKTModelBuilder.xcdatamodeld in Sources */,
883ACACC1A043815006139C6 /* PDKTDoubleTransformer.m in Sources */,
883ACA681A0417BA006139C6 /* __PDKTCoreDataEntityRelationshipOneToMany.m in Sources */,
E71269DA1C85C039008DCFF4 /* PDKTISO8601DateTransformer.m in Sources */,
883ACA771A0417BA006139C6 /* PDKTEntityDataParser.m in Sources */,
883ACA1A1A041786006139C6 /* ViewController.m in Sources */,
883ACACB1A043815006139C6 /* PDKTDateTransformer.m in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,36 @@

#import "PictureEntity+PDKTModelBuilderEntity.h"
#import "PDKTDataTransformers.h"
#import "UserEntity.h"

@implementation PictureEntity (PDKTModelBuilderEntity)
+ (NSString *)entityName {
return @"PictureEntity";
}
+ (NSDictionary *)propertiesBindings{
return @{
@"pictureId":@"id",
@"picturePublishedDate":@"published_on",
@"pictureURL":@"url"
@"pictureURL":@"url",
@"pictureModificationDateUnixTimestamp": @"updated_at"
};
}
+ (NSDictionary *)propertiesTypeTransformers{
return @{
@"picturePublishedDate":[PDKTDateTransformer new],
@"pictureURL":[PDKTURLTransformer new]
@"pictureURL":[PDKTURLTransformer new],
@"pictureModificationDateUnixTimestamp": [PDKTIntegerTransformer new]
};
}
+ (NSString *)entityIdPropertyName {
return @"pictureId";
}
+ (NSDictionary *)relationshipsBindings{
return @{
@"author": [PDKTCoreDataEntityRelationship oneToOneRelationshipForKeyPath:@"author" andClass:[UserEntity class]]
};
}
+ (NSString *)comparableAttribute {
return @"pictureModificationDateUnixTimestamp";
}
@end
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,35 @@
#import "PictureEntity.h"

@implementation UserEntity (PDKTModelBuilderEntity)
+ (NSString *)entityName {
return @"UserEntity";
}
+ (NSDictionary *)propertiesBindings{
return @{
@"userId":@"id",
@"userName":@"name",
@"userEmail":@"email",
@"userBlogURL":@"blog_url"
@"userBlogURL":@"blog_url",
@"entityUpdateUnixTimestamp": @"updated_at"
};
}
+ (NSDictionary *)propertiesTypeTransformers{
return @{
@"userBlogURL":[PDKTURLTransformer new]
@"userBlogURL":[PDKTURLTransformer new],
@"entityUpdateUnixTimestamp": [PDKTIntegerTransformer new]
};
}
+ (NSString *)entityIdPropertyName {
return @"userId";
}
+ (NSDictionary *)relationshipsBindings{
return @{
@"hasPictures":[PDKTCoreDataEntityRelationship oneToManyRelationshipForKeyPath:@"pictures" andClass:[PictureEntity class]]
};
}
+ (NSString *)comparableAttribute {
return @"entityUpdateUnixTimestamp";
}
+ (NSDictionary *)customDataDictionaryWithSourceDataDictionary:(NSDictionary *)dictionary{
NSMutableDictionary *dataDictionary = [dictionary mutableCopy];

Expand Down
1 change: 1 addition & 0 deletions Demo/PDKTModelBuilder/Models/PictureEntity.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
@property (nonatomic, retain) NSDate * picturePublishedDate;
@property (nonatomic, retain) id pictureURL;
@property (nonatomic, retain) UserEntity *author;
@property (nonatomic, retain) NSNumber * pictureModificationDateUnixTimestamp;

@end
1 change: 1 addition & 0 deletions Demo/PDKTModelBuilder/Models/PictureEntity.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ @implementation PictureEntity
@dynamic picturePublishedDate;
@dynamic pictureURL;
@dynamic author;
@dynamic pictureModificationDateUnixTimestamp;

@end
5 changes: 3 additions & 2 deletions Demo/PDKTModelBuilder/Models/UserEntity.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// UserEntity.h
// PDKTModelBuilder
//
// Created by Daniel García on 02/02/15.
// Created by Antonio on 22/7/15.
// Copyright (c) 2015 Produkt. All rights reserved.
//

Expand All @@ -13,11 +13,12 @@

@interface UserEntity : NSManagedObject

@property (nonatomic, retain) NSDate * entityUpdateDate;
@property (nonatomic, retain) id userBlogURL;
@property (nonatomic, retain) NSString * userEmail;
@property (nonatomic, retain) NSString * userId;
@property (nonatomic, retain) NSString * userName;
@property (nonatomic, retain) NSDate * entityUpdateDate;
@property (nonatomic, retain) NSNumber * entityUpdateUnixTimestamp;
@property (nonatomic, retain) NSSet *hasPictures;
@end

Expand Down
5 changes: 3 additions & 2 deletions Demo/PDKTModelBuilder/Models/UserEntity.m
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// UserEntity.m
// PDKTModelBuilder
//
// Created by Daniel García on 02/02/15.
// Created by Antonio on 22/7/15.
// Copyright (c) 2015 Produkt. All rights reserved.
//

Expand All @@ -12,11 +12,12 @@

@implementation UserEntity

@dynamic entityUpdateDate;
@dynamic userBlogURL;
@dynamic userEmail;
@dynamic userId;
@dynamic userName;
@dynamic entityUpdateDate;
@dynamic entityUpdateUnixTimestamp;
@dynamic hasPictures;

@end
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="6254" systemVersion="14B25" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9525" systemVersion="15C50" minimumToolsVersion="Automatic">
<entity name="PictureEntity" representedClassName="PictureEntity" syncable="YES">
<attribute name="pictureId" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="pictureModificationDateUnixTimestamp" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
<attribute name="picturePublishedDate" optional="YES" attributeType="Date" syncable="YES"/>
<attribute name="pictureURL" optional="YES" attributeType="Transformable" syncable="YES"/>
<relationship name="author" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="UserEntity" inverseName="hasPictures" inverseEntity="UserEntity" syncable="YES"/>
</entity>
<entity name="UserEntity" representedClassName="UserEntity" syncable="YES">
<attribute name="entityUpdateDate" optional="YES" attributeType="Date" syncable="YES"/>
<attribute name="entityUpdateUnixTimestamp" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
<attribute name="userBlogURL" optional="YES" attributeType="Transformable" syncable="YES"/>
<attribute name="userEmail" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="userId" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="userName" optional="YES" attributeType="String" syncable="YES"/>
<relationship name="hasPictures" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="PictureEntity" inverseName="author" inverseEntity="PictureEntity" syncable="YES"/>
</entity>
<elements>
<element name="PictureEntity" positionX="-54" positionY="18" width="128" height="103"/>
<element name="UserEntity" positionX="-63" positionY="-18" width="128" height="135"/>
<element name="PictureEntity" positionX="-54" positionY="18" width="128" height="120"/>
<element name="UserEntity" positionX="-63" positionY="-18" width="128" height="150"/>
</elements>
</model>
Loading