Skip to content

Commit

Permalink
[NEW] Switch default machine templates to use @dynamic. Thus generate…
Browse files Browse the repository at this point in the history
…d code now requires 10.5. Old non-@dynamic templates moved to contributed templates/rentzsch non-dynamic. (Pierre Bernard)
  • Loading branch information
rentzsch committed Oct 9, 2009
1 parent c6d0ef3 commit 68e73da
Show file tree
Hide file tree
Showing 7 changed files with 269 additions and 54 deletions.
5 changes: 5 additions & 0 deletions contributed templates/rentzsch non-dynamic/human.h.motemplate
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#import "_<$managedObjectClassName$>.h"

@interface <$managedObjectClassName$> : _<$managedObjectClassName$> {}
// Custom logic goes here.
@end
7 changes: 7 additions & 0 deletions contributed templates/rentzsch non-dynamic/human.m.motemplate
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#import "<$managedObjectClassName$>.h"

@implementation <$managedObjectClassName$>

// Custom logic goes here.

@end
59 changes: 59 additions & 0 deletions contributed templates/rentzsch non-dynamic/machine.h.motemplate
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// DO NOT EDIT. This file is machine-generated and constantly overwritten.
// Make changes to <$managedObjectClassName$>.h instead.

#import <CoreData/CoreData.h>
<$if hasCustomSuperentity$>#import "<$customSuperentity$>.h"<$endif$>

<$foreach Relationship noninheritedRelationships do$>@class <$Relationship.destinationEntity.managedObjectClassName$>;
<$endforeach do$>
@interface <$managedObjectClassName$>ID : NSManagedObjectID {}
@end

@interface _<$managedObjectClassName$> : <$customSuperentity$> {}
+ (id)insertInManagedObjectContext:(NSManagedObjectContext*)moc_;
- (<$managedObjectClassName$>ID*)objectID;

<$foreach Attribute noninheritedAttributes do$>
<$if Attribute.hasDefinedAttributeType$>
- (<$Attribute.objectAttributeType$>*)<$Attribute.name$>;
- (void)set<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>*)value_;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) <$Attribute.objectAttributeType$> *<$Attribute.name$>;
#endif
<$if Attribute.hasScalarAttributeType$>
- (<$Attribute.scalarAttributeType$>)<$Attribute.name$>Value;
- (void)set<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;
<$endif$>
//- (BOOL)validate<$Attribute.name.initialCapitalString$>:(id*)value_ error:(NSError**)error_;
<$endif$>
<$endforeach do$>
<$foreach Relationship noninheritedRelationships do$>
<$if Relationship.isToMany$>
- (NSSet*)<$Relationship.name$>;
- (void)add<$Relationship.name.initialCapitalString$>:(NSSet*)value_;
- (void)remove<$Relationship.name.initialCapitalString$>:(NSSet*)value_;
- (void)add<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
- (void)remove<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
- (NSMutableSet*)<$Relationship.name$>Set;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) NSSet* <$Relationship.name$>;
#endif
<$else$>
- (<$Relationship.destinationEntity.managedObjectClassName$>*)<$Relationship.name$>;
- (void)set<$Relationship.name.initialCapitalString$>:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
//- (BOOL)validate<$Relationship.name.initialCapitalString$>:(id*)value_ error:(NSError**)error_;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) <$Relationship.destinationEntity.managedObjectClassName$>* <$Relationship.name$>;
#endif
<$endif$>
<$endforeach do$>
<$foreach FetchRequest prettyFetchRequests do$>
<$if FetchRequest.singleResult$>
+ (id)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$>;
+ (id)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> error:(NSError**)error_;
<$else$>
+ (NSArray*)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$>;
+ (NSArray*)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> error:(NSError**)error_;
<$endif$>
<$endforeach do$>
@end
191 changes: 191 additions & 0 deletions contributed templates/rentzsch non-dynamic/machine.m.motemplate
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
// DO NOT EDIT. This file is machine-generated and constantly overwritten.
// Make changes to <$managedObjectClassName$>.m instead.

#import "_<$managedObjectClassName$>.h"

@implementation <$managedObjectClassName$>ID
@end

@implementation _<$managedObjectClassName$>

+ (id)insertInManagedObjectContext:(NSManagedObjectContext*)moc_ {
return [NSEntityDescription insertNewObjectForEntityForName:@"<$name$>" inManagedObjectContext:moc_];
}

- (<$managedObjectClassName$>ID*)objectID {
return (<$managedObjectClassName$>ID*)[super objectID];
}

<$foreach Attribute noninheritedAttributes do$>
<$if Attribute.hasDefinedAttributeType$>

- (<$Attribute.objectAttributeType$>*)<$Attribute.name$> {
[self willAccessValueForKey:@"<$Attribute.name$>"];
<$Attribute.objectAttributeType$> *result = [self primitiveValueForKey:@"<$Attribute.name$>"];
[self didAccessValueForKey:@"<$Attribute.name$>"];
return result;
}

- (void)set<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>*)value_ {
[self willChangeValueForKey:@"<$Attribute.name$>"];
[self setPrimitiveValue:value_ forKey:@"<$Attribute.name$>"];
[self didChangeValueForKey:@"<$Attribute.name$>"];
}

<$if Attribute.hasScalarAttributeType$>

- (<$Attribute.scalarAttributeType$>)<$Attribute.name$>Value {
NSNumber *result = [self <$Attribute.name$>];
return result ? [result <$Attribute.scalarAttributeType.camelCaseString$>Value] : 0;
}

- (void)set<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_ {
[self set<$Attribute.name.initialCapitalString$>:[NSNumber numberWith<$Attribute.scalarAttributeType.camelCaseString.initialCapitalString$>:value_]];
}

<$endif$>
<$endif$>
<$endforeach do$>

<$foreach Relationship noninheritedRelationships do$>
<$if Relationship.isToMany$>

- (NSSet*)<$Relationship.name$> {
[self willAccessValueForKey:@"<$Relationship.name$>"];
NSSet *result = [self primitiveValueForKey:@"<$Relationship.name$>"];
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}

- (void)set<$Relationship.name.initialCapitalString$>:(NSSet*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueSetSetMutation usingObjects:value_];
[[self primitiveValueForKey:@"<$Relationship.name$>"] setSet:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueSetSetMutation usingObjects:value_];
}

- (void)add<$Relationship.name.initialCapitalString$>:(NSSet*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value_];
[[self primitiveValueForKey:@"<$Relationship.name$>"] unionSet:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value_];
}

-(void)remove<$Relationship.name.initialCapitalString$>:(NSSet*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value_];
[[self primitiveValueForKey:@"<$Relationship.name$>"] minusSet:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value_];
}

- (void)add<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_ {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value_ count:1];
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"<$Relationship.name$>"] addObject:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}

- (void)remove<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_ {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value_ count:1];
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"<$Relationship.name$>"] removeObject:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[changedObjects release];
}

- (NSMutableSet*)<$Relationship.name$>Set {
[self willAccessValueForKey:@"<$Relationship.name$>"];
NSMutableSet *result = [self mutableSetValueForKey:@"<$Relationship.name$>"];
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}
<$else$>

- (<$Relationship.destinationEntity.managedObjectClassName$>*)<$Relationship.name$> {
[self willAccessValueForKey:@"<$Relationship.name$>"];
<$Relationship.destinationEntity.managedObjectClassName$> *result = [self primitiveValueForKey:@"<$Relationship.name$>"];
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}

- (void)set<$Relationship.name.initialCapitalString$>:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>"];
[self setPrimitiveValue:value_ forKey:@"<$Relationship.name$>"];
[self didChangeValueForKey:@"<$Relationship.name$>"];
}

<$endif$>
<$endforeach do$>

<$foreach FetchRequest prettyFetchRequests do$>
<$if FetchRequest.singleResult$>
+ (id)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> {
NSError *error = nil;
id result = [self fetch<$FetchRequest.name.initialCapitalString$>:moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:<$Binding.name$>_<$endforeach do2$> error:&error];
if (error) {
[NSApp presentError:error];
}
return result;
}
+ (id)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> error:(NSError**)error_ {
NSError *error = nil;

NSManagedObjectModel *model = [[moc_ persistentStoreCoordinator] managedObjectModel];
NSDictionary *substitutionVariables = [NSDictionary dictionaryWithObjectsAndKeys:
<$foreach Binding FetchRequest.bindings do2$>
<$Binding.name$>_, @"<$Binding.name$>",
<$endforeach do2$>
nil];
NSFetchRequest *fetchRequest = [model fetchRequestFromTemplateWithName:@"<$FetchRequest.name$>"
substitutionVariables:substitutionVariables];
NSAssert(fetchRequest, @"Can't find fetch request named \"<$FetchRequest.name$>\".");

id result = nil;
NSArray *results = [moc_ executeFetchRequest:fetchRequest error:&error];

if (!error) {
switch ([results count]) {
case 0:
// Nothing found matching the fetch request. That's cool, though: we'll just return nil.
break;
case 1:
result = [results objectAtIndex:0];
break;
default:
NSLog(@"WARN fetch request <$FetchRequest.name$>: 0 or 1 objects expected, %u found (substitutionVariables:%@, results:%@)",
[results count],
substitutionVariables,
results);
}
}

if (error_) *error_ = error;
return result;
}
<$else$>
+ (NSArray*)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> {
NSError *error = nil;
NSArray *result = [self fetch<$FetchRequest.name.initialCapitalString$>:moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:<$Binding.name$>_<$endforeach do2$> error:&error];
if (error) {
[NSApp presentError:error];
}
return result;
}
+ (NSArray*)fetch<$FetchRequest.name.initialCapitalString$>:(NSManagedObjectContext*)moc_ <$foreach Binding FetchRequest.bindings do2$><$Binding.name$>:(<$Binding.type$>)<$Binding.name$>_<$endforeach do2$> error:(NSError**)error_ {
NSError *error = nil;

NSManagedObjectModel *model = [[moc_ persistentStoreCoordinator] managedObjectModel];
NSFetchRequest *fetchRequest = [model fetchRequestFromTemplateWithName:@"<$FetchRequest.name$>"
substitutionVariables:[NSDictionary dictionaryWithObjectsAndKeys:
<$foreach Binding FetchRequest.bindings do2$>
<$Binding.name$>_, @"<$Binding.name$>",
<$endforeach do2$>
nil]
];
NSAssert(fetchRequest, @"Can't find fetch request named \"<$FetchRequest.name$>\".");

NSArray *result = [moc_ executeFetchRequest:fetchRequest error:&error];
if (error_) *error_ = error;
return result;
}
<$endif$>
<$endforeach do$>
@end
2 changes: 1 addition & 1 deletion mogenerator.m
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ - (void)_processPredicate:(NSPredicate*)predicate_ bindings:(NSMutableArray*)bin
nsenumerate([(NSCompoundPredicate*)predicate_ subpredicates], NSPredicate, subpredicate) {
[self _processPredicate:subpredicate bindings:bindings_];
}
} else {
} else if ([predicate_ isKindOfClass:[NSComparisonPredicate class]]) {
assert([[(NSComparisonPredicate*)predicate_ leftExpression] expressionType] == NSKeyPathExpressionType);
NSExpression *lhs = [(NSComparisonPredicate*)predicate_ leftExpression];
NSExpression *rhs = [(NSComparisonPredicate*)predicate_ rightExpression];
Expand Down
17 changes: 3 additions & 14 deletions templates/machine.h.motemplate
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,7 @@

<$foreach Attribute noninheritedAttributes do$>
<$if Attribute.hasDefinedAttributeType$>
- (<$Attribute.objectAttributeType$>*)<$Attribute.name$>;
- (void)set<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>*)value_;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) <$Attribute.objectAttributeType$> *<$Attribute.name$>;
#endif
@property (nonatomic, retain) <$Attribute.objectAttributeType$> *<$Attribute.name$>;
<$if Attribute.hasScalarAttributeType$>
- (<$Attribute.scalarAttributeType$>)<$Attribute.name$>Value;
- (void)set<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;
Expand All @@ -29,22 +25,15 @@
<$endforeach do$>
<$foreach Relationship noninheritedRelationships do$>
<$if Relationship.isToMany$>
- (NSSet*)<$Relationship.name$>;
@property (nonatomic, retain) NSSet* <$Relationship.name$>;

- (void)add<$Relationship.name.initialCapitalString$>:(NSSet*)value_;
- (void)remove<$Relationship.name.initialCapitalString$>:(NSSet*)value_;
- (void)add<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
- (void)remove<$Relationship.name.initialCapitalString$>Object:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
- (NSMutableSet*)<$Relationship.name$>Set;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) NSSet* <$Relationship.name$>;
#endif
<$else$>
- (<$Relationship.destinationEntity.managedObjectClassName$>*)<$Relationship.name$>;
- (void)set<$Relationship.name.initialCapitalString$>:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_;
//- (BOOL)validate<$Relationship.name.initialCapitalString$>:(id*)value_ error:(NSError**)error_;
#if defined(MAC_OS_X_VERSION_10_5) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
@property (retain) <$Relationship.destinationEntity.managedObjectClassName$>* <$Relationship.name$>;
#endif
<$endif$>
<$endforeach do$>
<$foreach FetchRequest prettyFetchRequests do$>
Expand Down
42 changes: 3 additions & 39 deletions templates/machine.m.motemplate
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,7 @@
<$foreach Attribute noninheritedAttributes do$>
<$if Attribute.hasDefinedAttributeType$>

- (<$Attribute.objectAttributeType$>*)<$Attribute.name$> {
[self willAccessValueForKey:@"<$Attribute.name$>"];
<$Attribute.objectAttributeType$> *result = [self primitiveValueForKey:@"<$Attribute.name$>"];
[self didAccessValueForKey:@"<$Attribute.name$>"];
return result;
}

- (void)set<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>*)value_ {
[self willChangeValueForKey:@"<$Attribute.name$>"];
[self setPrimitiveValue:value_ forKey:@"<$Attribute.name$>"];
[self didChangeValueForKey:@"<$Attribute.name$>"];
}
@dynamic <$Attribute.name$>;

<$if Attribute.hasScalarAttributeType$>

Expand All @@ -48,20 +37,9 @@
<$endforeach do$>

<$foreach Relationship noninheritedRelationships do$>
<$if Relationship.isToMany$>

- (NSSet*)<$Relationship.name$> {
[self willAccessValueForKey:@"<$Relationship.name$>"];
NSSet *result = [self primitiveValueForKey:@"<$Relationship.name$>"];
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}
@dynamic <$Relationship.name$>;

- (void)set<$Relationship.name.initialCapitalString$>:(NSSet*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueSetSetMutation usingObjects:value_];
[[self primitiveValueForKey:@"<$Relationship.name$>"] setSet:value_];
[self didChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueSetSetMutation usingObjects:value_];
}
<$if Relationship.isToMany$>

- (void)add<$Relationship.name.initialCapitalString$>:(NSSet*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value_];
Expand Down Expand Up @@ -97,20 +75,6 @@
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}
<$else$>

- (<$Relationship.destinationEntity.managedObjectClassName$>*)<$Relationship.name$> {
[self willAccessValueForKey:@"<$Relationship.name$>"];
<$Relationship.destinationEntity.managedObjectClassName$> *result = [self primitiveValueForKey:@"<$Relationship.name$>"];
[self didAccessValueForKey:@"<$Relationship.name$>"];
return result;
}

- (void)set<$Relationship.name.initialCapitalString$>:(<$Relationship.destinationEntity.managedObjectClassName$>*)value_ {
[self willChangeValueForKey:@"<$Relationship.name$>"];
[self setPrimitiveValue:value_ forKey:@"<$Relationship.name$>"];
[self didChangeValueForKey:@"<$Relationship.name$>"];
}

<$endif$>
<$endforeach do$>
Expand Down

0 comments on commit 68e73da

Please sign in to comment.