##   Licensed to the Apache Software Foundation (ASF) under one
##  or more contributor license agreements.  See the NOTICE file
##  distributed with this work for additional information
##  regarding copyright ownership.  The ASF licenses this file
##  to you under the Apache License, Version 2.0 (the
##  "License"); you may not use this file except in compliance
##  with the License.  You may obtain a copy of the License at
##
##    https://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing,
##  software distributed under the License is distributed on an
##  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
##  KIND, either express or implied.  See the License for the
##  specific language governing permissions and limitations
##  under the License.
##
##Terminology:
##	Base class - super superclass of entity, ie, org.apache.cayenne.GenericPersistentObject or MyBaseClass
##  Super class - superclass of entity, ie,  org.apache.cayenne.art.auto._Artist
##	Sub class - class of entity, ie, org.apache.cayenne.art.Artist
##
##  Classes available in template
##    objEntity - the ObjEntity class: See org.apache.cayenne.map.ObjectEntity
##    stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
##    entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
##    importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
##
##
${importUtils.setPackage($subPackageName)}##
${importUtils.addReservedType("${subPackageName}.${subClassName}")}##
${importUtils.addType("${superPackageName}.${superClassName}")}##
${importUtils.generate()}

public#if("true" == "${object.isAbstract()}") abstract#end class ${subClassName} extends ${superClassName} {

    private static final long serialVersionUID = 1L;

##callbacks
#foreach($cbname in ${entityUtils.callbackNames})
    @Override
    protected void ${cbname}() {
        //TODO: implement ${cbname}
    }

#end 
}
