<commit_before>package org.sculptor.generator.ext

import org.sculptor.generator.ext.Helper
import org.sculptor.generator.util.HelperBase
import org.sculptor.generator.ext.Properties
import org.sculptor.generator.util.PropertiesBase
import org.sculptor.generator.util.DbHelperBase

import org.sculptor.generator.template.service.ServiceTmpl
import org.sculptor.generator.template.service.ServiceEjbTestTmpl
import org.sculptor.generator.template.service.ServiceTestTmpl
import org.sculptor.generator.template.service.ServiceEjbTmpl
import org.sculptor.generator.template.web.JSFCrudGuiConfigContextTmpl
import org.sculptor.generator.template.drools.DroolsTmpl
import org.sculptor.generator.template.doc.ModelDocTmpl
import org.sculptor.generator.template.doc.UMLGraphTmpl
import org.sculptor.generator.template.doc.ModelDocCssTmpl
import org.sculptor.generator.template.spring.SpringTmpl
import org.sculptor.generator.template.springint.SpringIntegrationTmpl
import org.sculptor.generator.template.db.DDLTmpl
import org.sculptor.generator.template.db.MysqlDDLTmpl
import org.sculptor.generator.template.db.OracleDDLTmpl
import org.sculptor.generator.template.db.CustomDDLTmpl
import org.sculptor.generator.template.db.DatasourceTmpl
import org.sculptor.generator.template.db.DbUnitTmpl
import org.sculptor.generator.template.domain.DomainObjectAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectReferenceAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectNamesTmpl
import org.sculptor.generator.template.domain.DomainObjectConstructorTmpl
import org.sculptor.generator.template.domain.DomainObjectTraitTmpl
import org.sculptor.generator.template.domain.DomainObjectReferenceTmpl
import org.sculptor.generator.template.domain.DomainObjectKeyTmpl
import org.sculptor.generator.template.domain.DomainObjectPropertiesTmpl
import org.sculptor.generator.template.domain.DomainObjectAttributeAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectAttributeTmpl
import org.sculptor.generator.template.domain.BuilderTmpl
import org.sculptor.generator.template.domain.DomainObjectTmpl
import org.sculptor.generator.template.mongodb.MongoDbConversationDomainObjectRepositoryTmpl
import org.sculptor.generator.template.mongodb.MongoDbServiceTestTmpl
import org.sculptor.generator.template.mongodb.MongoDbMapperTmpl
import org.sculptor.generator.template.jpa.EclipseLinkTmpl
import org.sculptor.generator.template.jpa.DataNucleusTmpl
import org.sculptor.generator.template.jpa.JPATmpl
import org.sculptor.generator.template.jpa.OpenJpaTmpl
import org.sculptor.generator.template.jpa.HibernateTmpl
import org.sculptor.generator.template.camel.CamelTmpl
import org.sculptor.generator.template.common.LogConfigTmpl
import org.sculptor.generator.template.common.PubSubTmpl
import org.sculptor.generator.template.common.ExceptionTmpl
import org.sculptor.generator.template.consumer.ConsumerTmpl
import org.sculptor.generator.template.consumer.ConsumerTestTmpl
import org.sculptor.generator.template.consumer.ConsumerEjbTmpl
import org.sculptor.generator.template.consumer.ConsumerEjbTestTmpl
import org.sculptor.generator.template.repository.AccessObjectTmpl
import org.sculptor.generator.template.repository.AccessObjectFactoryTmpl
import org.sculptor.generator.template.repository.RepositoryTmpl
import org.sculptor.generator.template.rest.RestWebCssTmpl
import org.sculptor.generator.template.rest.RestWebJspTmpl
import org.sculptor.generator.template.rest.ResourceTmpl
import org.sculptor.generator.template.rest.RestWebConfigTmpl
import org.sculptor.generator.template.rest.RestWebTmpl
import org.sculptor.generator.template.RootTmpl
import org.sculptor.generator.util.XmlHelperBase

class GeneratorFactory {
	// Extensions
	private static val helperImpl = new Helper
	private static val helperBaseImpl = new HelperBase
	private static val propertiesImpl = new Properties
	private static val propertiesBaseImpl = new PropertiesBase
	private static val dbHelperImpl = new DbHelper
	private static val dbHelperBaseImpl = new DbHelperBase
	private static val xmlHelperBaseImpl = new XmlHelperBase
	private static val umlGraphHelperImpl = new UmlGraphHelper

	// Templates
	private static val serviceTmplImpl = new ServiceTmpl
	private static val serviceEjbTestTmplImpl = new ServiceEjbTestTmpl
	private static val serviceTestTmplImpl = new ServiceTestTmpl
	private static val serviceEjbTmplImpl = new ServiceEjbTmpl
	private static val jSFCrudGuiConfigContextTmplImpl = new JSFCrudGuiConfigContextTmpl
	private static val droolsTmplImpl = new DroolsTmpl
	private static val modelDocTmplImpl = new ModelDocTmpl
	private static val uMLGraphTmplImpl = new UMLGraphTmpl
	private static val modelDocCssTmplImpl = new ModelDocCssTmpl
	private static val springTmplImpl = new SpringTmpl
	private static val springIntegrationTmplImpl = new SpringIntegrationTmpl
	private static val dDLTmplImpl = new DDLTmpl
	private static val mysqlDDLTmplImpl = new MysqlDDLTmpl
	private static val oracleDDLTmplImpl = new OracleDDLTmpl
	private static val customDDLTmplImpl = new CustomDDLTmpl
	private static val datasourceTmplImpl = new DatasourceTmpl
	private static val dbUnitTmplImpl = new DbUnitTmpl
	private static val domainObjectAnnotationTmplImpl = new DomainObjectAnnotationTmpl
	private static val domainObjectReferenceAnnotationTmplImpl = new DomainObjectReferenceAnnotationTmpl
	private static val domainObjectNamesTmplImpl = new DomainObjectNamesTmpl
	private static val domainObjectConstructorTmplImpl = new DomainObjectConstructorTmpl
	private static val domainObjectTraitTmplImpl = new DomainObjectTraitTmpl<commit_msg>GeneratorFactory: initialize propertiesBase before helperBase to avoid NPE<commit_after>package org.sculptor.generator.ext

import org.sculptor.generator.ext.Helper
import org.sculptor.generator.util.HelperBase
import org.sculptor.generator.ext.Properties
import org.sculptor.generator.util.PropertiesBase
import org.sculptor.generator.util.DbHelperBase

import org.sculptor.generator.template.service.ServiceTmpl
import org.sculptor.generator.template.service.ServiceEjbTestTmpl
import org.sculptor.generator.template.service.ServiceTestTmpl
import org.sculptor.generator.template.service.ServiceEjbTmpl
import org.sculptor.generator.template.web.JSFCrudGuiConfigContextTmpl
import org.sculptor.generator.template.drools.DroolsTmpl
import org.sculptor.generator.template.doc.ModelDocTmpl
import org.sculptor.generator.template.doc.UMLGraphTmpl
import org.sculptor.generator.template.doc.ModelDocCssTmpl
import org.sculptor.generator.template.spring.SpringTmpl
import org.sculptor.generator.template.springint.SpringIntegrationTmpl
import org.sculptor.generator.template.db.DDLTmpl
import org.sculptor.generator.template.db.MysqlDDLTmpl
import org.sculptor.generator.template.db.OracleDDLTmpl
import org.sculptor.generator.template.db.CustomDDLTmpl
import org.sculptor.generator.template.db.DatasourceTmpl
import org.sculptor.generator.template.db.DbUnitTmpl
import org.sculptor.generator.template.domain.DomainObjectAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectReferenceAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectNamesTmpl
import org.sculptor.generator.template.domain.DomainObjectConstructorTmpl
import org.sculptor.generator.template.domain.DomainObjectTraitTmpl
import org.sculptor.generator.template.domain.DomainObjectReferenceTmpl
import org.sculptor.generator.template.domain.DomainObjectKeyTmpl
import org.sculptor.generator.template.domain.DomainObjectPropertiesTmpl
import org.sculptor.generator.template.domain.DomainObjectAttributeAnnotationTmpl
import org.sculptor.generator.template.domain.DomainObjectAttributeTmpl
import org.sculptor.generator.template.domain.BuilderTmpl
import org.sculptor.generator.template.domain.DomainObjectTmpl
import org.sculptor.generator.template.mongodb.MongoDbConversationDomainObjectRepositoryTmpl
import org.sculptor.generator.template.mongodb.MongoDbServiceTestTmpl
import org.sculptor.generator.template.mongodb.MongoDbMapperTmpl
import org.sculptor.generator.template.jpa.EclipseLinkTmpl
import org.sculptor.generator.template.jpa.DataNucleusTmpl
import org.sculptor.generator.template.jpa.JPATmpl
import org.sculptor.generator.template.jpa.OpenJpaTmpl
import org.sculptor.generator.template.jpa.HibernateTmpl
import org.sculptor.generator.template.camel.CamelTmpl
import org.sculptor.generator.template.common.LogConfigTmpl
import org.sculptor.generator.template.common.PubSubTmpl
import org.sculptor.generator.template.common.ExceptionTmpl
import org.sculptor.generator.template.consumer.ConsumerTmpl
import org.sculptor.generator.template.consumer.ConsumerTestTmpl
import org.sculptor.generator.template.consumer.ConsumerEjbTmpl
import org.sculptor.generator.template.consumer.ConsumerEjbTestTmpl
import org.sculptor.generator.template.repository.AccessObjectTmpl
import org.sculptor.generator.template.repository.AccessObjectFactoryTmpl
import org.sculptor.generator.template.repository.RepositoryTmpl
import org.sculptor.generator.template.rest.RestWebCssTmpl
import org.sculptor.generator.template.rest.RestWebJspTmpl
import org.sculptor.generator.template.rest.ResourceTmpl
import org.sculptor.generator.template.rest.RestWebConfigTmpl
import org.sculptor.generator.template.rest.RestWebTmpl
import org.sculptor.generator.template.RootTmpl
import org.sculptor.generator.util.XmlHelperBase

class GeneratorFactory {
	// Extensions
	private static val propertiesBaseImpl = new PropertiesBase
	private static val helperImpl = new Helper
	private static val helperBaseImpl = new HelperBase
	private static val propertiesImpl = new Properties
	private static val dbHelperImpl = new DbHelper
	private static val dbHelperBaseImpl = new DbHelperBase
	private static val xmlHelperBaseImpl = new XmlHelperBase
	private static val umlGraphHelperImpl = new UmlGraphHelper

	// Templates
	private static val serviceTmplImpl = new ServiceTmpl
	private static val serviceEjbTestTmplImpl = new ServiceEjbTestTmpl
	private static val serviceTestTmplImpl = new ServiceTestTmpl
	private static val serviceEjbTmplImpl = new ServiceEjbTmpl
	private static val jSFCrudGuiConfigContextTmplImpl = new JSFCrudGuiConfigContextTmpl
	private static val droolsTmplImpl = new DroolsTmpl
	private static val modelDocTmplImpl = new ModelDocTmpl
	private static val uMLGraphTmplImpl = new UMLGraphTmpl
	private static val modelDocCssTmplImpl = new ModelDocCssTmpl
	private static val springTmplImpl = new SpringTmpl
	private static val springIntegrationTmplImpl = new SpringIntegrationTmpl
	private static val dDLTmplImpl = new DDLTmpl
	private static val mysqlDDLTmplImpl = new MysqlDDLTmpl
	private static val oracleDDLTmplImpl = new OracleDDLTmpl
	private static val customDDLTmplImpl = new CustomDDLTmpl
	private static val datasourceTmplImpl = new DatasourceTmpl
	private static val dbUnitTmplImpl = new DbUnitTmpl
	private static val domainObjectAnnotationTmplImpl = new DomainObjectAnnotationTmpl
	private static val domainObjectReferenceAnnotationTmplImpl = new DomainObjectReferenceAnnotationTmpl
	private static val domainObjectNamesTmplImpl = new DomainObjectNamesTmpl
	private static val domainObjectConstructorTmplImpl = new DomainObjectConstructorTmpl
	private static val domainObjectTraitTmplImpl = new DomainObjectTraitTmpl
{'fraction_non_alphanumeric': 0.058771852762892034, 'fraction_numerical': 0.0, 'mean_word_length': 7.3952802359882, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2501107', 'n_tokens_mistral': 3541, 'n_tokens_neox': 3276, 'n_words': 618}