<$comment
EO Template for use by "eogenerator" based upon MiscMerge engine.
You may customize this file to modify the templates generated
by this tool.  See the MiscMerge documentation for a description
of the parsing language.  The engine gets passed this file and an
EOEntity to process, so the methods used must be ones that an
EOEntity can respond to.

BE SURE NOT TO INCLUDE DATES IN THIS FILE.  Since the "eogenerator"
tool tries to compare the newly generated file with the old file,
adding dates to this file will guarantee the old file gets
overridden by the new file, forcing a recompilation of your EO.
$>
// <$GEN_PREFIX$><$className$>.h
// 
// Created by eogenerator
// DO NOT EDIT.  Make changes to <$className$>.h instead.
<$comment The below 'set' puts the FetchSpec into the global lookup space. We
do this because the beautifiedFetchSpecificationDictionaries actually will
print some logs and does a lot of object creation so this will keep the
fuss down to a minimum.
$><$set FetchSpecs = beautifiedFetchSpecificationDictionaries.@sortedNameArray$>
#import <EOControl/EOControl.h>
<$foreach parent arrayWithParentClassNameIfNeeded do$>
#import "<$parent$>.h"<$endforeach do$>
<$foreach relationship referencedClasses.@reversedArray do$>
@class <$relationship$>;<$endforeach do$>

@interface <$GEN_PREFIX$><$className$> : <$parentClassName$> <NSCoding>
{<$foreach scalarAttribute classScalarAttributes.@sortedNameArray do$>
  <$scalarAttribute.cScalarTypeString$> <$scalarAttribute.name$>;<$endforeach do
  $><$foreach nonScalarAttribute classNonScalarAttributes.@sortedNameArray do$>
  <$nonScalarAttribute.valueClassName$> *<$nonScalarAttribute.name$>;<$endforeach do
  $><$foreach toOneRelationship classToOneRelationships.@sortedNameArray do$>
  <$toOneRelationship.destinationEntity.referenceClassName$> <$toOneRelationship.name$>;<$endforeach do
  $><$foreach toManyRelationship classToManyRelationships.@sortedNameArray do$>
  NSMutableArray *<$toManyRelationship.name$>;<$endforeach do$>
}
<$foreach scalarAttribute classScalarAttributes.@sortedNameArray do$>
- (void)set<$scalarAttribute.name.initialCapitalString$>:(<$scalarAttribute.cScalarTypeString$>)aValue;
- (<$scalarAttribute.cScalarTypeString$>)<$scalarAttribute.name$>;
<$endforeach do

$><$foreach nonScalarAttribute classNonScalarAttributes.@sortedNameArray do$>
- (void)set<$nonScalarAttribute.name.initialCapitalString$>:(<$nonScalarAttribute.valueClassName$> *)aValue;
- (<$nonScalarAttribute.valueClassName$> *)<$nonScalarAttribute.name$>;
<$endforeach do

$><$foreach toOneRelationship classToOneRelationships.@sortedNameArray do$>
- (void)set<$toOneRelationship.name.initialCapitalString$>:(<$toOneRelationship.destinationEntity.referenceClassName$>)aValue;
- (<$toOneRelationship.destinationEntity.referenceClassName$>)<$toOneRelationship.name$>;
<$endforeach do

$><$foreach toManyRelationship classToManyRelationships.@sortedNameArray do$>
- (NSArray *)<$toManyRelationship.name$>;
- (void)addTo<$toManyRelationship.name.initialCapitalString$>:(<$toManyRelationship.destinationEntity.referenceClassName$>)object;
- (void)removeFrom<$toManyRelationship.name.initialCapitalString$>:(<$toManyRelationship.destinationEntity.referenceClassName$>)object;
<$endforeach do$>
@end